class Solution(object):
def subsetsWithDup(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
nums.sort()
res=[]
line=[]
self.helper(nums,res,line)
return res
def helper(self,nums,res,line):
res.append([x for x in line])
for i,x in enumerate(nums):
if i>0 and nums[i]==nums[i-1]:
continue
line.append(x)
self.helper(nums[i+1:],res,line)
line.pop()