def subsetsWithDup(nums): res = [] nums.sort() def dfs(index, path): res.append(path) for i in range(index, len(nums)): if i > index and nums[i] == nums[i-1]: continue dfs(i+1, path+[nums[i]]) dfs(0, []) return res
def subsetsWithDup(nums): res = [] nums.sort() def dfs(index, path): res.append(path) for i in range(index, len(nums)): if i > index and nums[i] == nums[i-1]: continue dfs(i+1, path+[nums[i]]) dfs(0, []) return res