背一下吧:if i in curr or (i >= 1 and nums[i] == nums[i-1] and i-1 not in curr):

#
# 
# @param num int整型一维数组 
# @return int整型二维数组
#
class Solution:
    def permuteUnique(self , num ):
        # write code here
        def backtrack(nums, curr):
            print(curr)
            if len(curr) == len(nums):
                res.append([nums[i] for i in curr[:]])
                return

            for i in range(len(nums)):
                if i in curr or (i >= 1 and nums[i] == nums[i-1] and i-1 not in curr):
                    continue
                curr.append(i)
                backtrack(nums, curr)
                curr.pop()

        res = []
        num.sort()
        backtrack(num, [])
        return res