---
title: '78. Subsets'
description: Given an integer array nums of unique elements, return all possible subsets (the power set)
sidebar:
  label: 'Subsets'
  badge: 'Medium'
---

Array

### Example 1:
- Input: `nums = [1,2,3]`
- Output: `[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]`

### Example 2:
- Input: `nums = [0]`
- Output: `[[],[0]]`

### Constraints:

- `1 <= nums.length <= 10`
- `-10 <= nums[i] <= 10`
- All the numbers of `nums` are unique.

## Solution

```py
class Solution:
    def subsets(self, nums: list[int]) -> list[list[int]]:
        res = []

        def backtrack(i, path):
            res.append(path[:])
            for num_idx in range(i, len(nums)):
                path.append(nums[num_idx])
                backtrack(num_idx + 1, path)
                path.pop()

        backtrack(0, [])
        return res
```
