I wrote a recursion function to get all subsets out of a list of integers. For example, given a list [1, 2, 3], the return will be [[],[1],[2],[3],[1, 2],[1, 3],[2, 3],[1, 2, 3]].
Here is my code:
def subsets(nums):
def helper(subset, i):
if i == len(nums):
print('return = ', subset)
res.append(subset)
else:
helper(subset, i+1)
subset.append(nums[i])
helper(subset, i+1)
subset.remove(nums[i])
res = []
helper([], 0)
return res
I print out the subset in each recursion and they are right. However, the final return res is always empty.
return = []
return = [3]
return = [2]
return = [2, 3]
return = [1]
return = [1, 3]
return = [1, 2]
return = [1, 2, 3]
res = [[], [], [], [], [], [], [], []]
Anyone knows why? Appreciate it!
itertools.combinations