class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        res = []
        subset = []
 
        def create_subset(i):
            if i == len(nums):
                res.append(subset[:])
                return
            
            subset.append(nums[i])
			# include this index
            create_subset(i+1)
            subset.pop()
			# exclude this index
            create_subset(i+1)
 
        create_subset(0)
        return res