class Solution:
def permute(self, nums: list[int]) -> list[list[int]]:
res = []
track = []
n = len(nums)
used = [0] * n
def backtrack():
if len(track)==n:
s = copy.deepcopy(track)
res.append(s)
for i in range(n):
if not used[i]:
used[i] = 1
track.append(nums[i])
backtrack()
track.remove(nums[i])
used[i] = 0
backtrack()
return res