classSolution: defsubsets(self,nums): n= len(nums) ans=[] for j in range(0,1<<n): # n个元素共有2^n个子集合 tmp=[] for i in range(n): if j&(1<<i)!=0: # 若j的对应位不为0,则知道是第几位,刚好找到对应nums中的元素 tmp.append(nums[i]) ans.append(tmp) return ans
classSolution: defsubsets(self, nums): res = [] for i in range(len(nums)+1): for tmp in itertools.combinations(nums, i): # itertools.combinations从可迭代对象nums中返回长度为i的组合 res.append(tmp) return res