递归回溯
import copy
class Solution:
"""
@param S: The set of numbers.
@return: A list of lists. See example.
"""
def subsets(self, S):
# write your code here
self.ans = []
m = 0
res = []
while m < len(S) + 1:
self.my_subsets(m, 0, res, S)
m += 1
return self.ans
def my_subsets(self, m, index, res, S):
if len(res) == m:
self.ans.append(sorted(copy.copy(res)))
return
for index in range(index, len(S)):
res.append(S[index])
self.my_subsets(m, index+1, res, S)
res.pop()