Given a set of distinct integers, return all possible subsets.

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        if not nums:
            return

        ret = []
        self.helper(nums, [], ret)
        return ret

    def helper(self, nums, path, ret):
        ret.append(path[:])
        for i, num in enumerate(nums):
            path.append(num)
            self.helper(nums[i+1:], path, ret)
            path.pop()