Given a collection of numbers that might contain duplicates, return all possible unique permutations.

**Example:**

Input:[1,1,2]Output:[ [1,1,2], [1,2,1], [2,1,1] ]

class Solution: def permuteUnique(self, nums: List[int]) -> List[List[int]]: self.result = [] def perm(data, begin, end): if begin == end: self.result += [[item for item in data]] else: i = begin for j in range(begin, end): data[i], data[j] = data[j], data[i] perm(data, begin + 1, end) data[i], data[j] = data[j], data[i] perm(nums, 0, len(nums)) return self.result