47. Permutations II (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def permuteUnique(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        self.result = []
        nums.sort()
        def dfs(nums, res):
            if not nums:
                self.result.append(res)
            for i in range(len(nums)):
                if i > 0 and nums[i] == nums[i - 1]:
                    continue
                dfs(nums[ : i] + nums[i + 1 : ], res + [nums[i]])
        dfs(nums, [])
        return self.result