1. class Solution:
    2. def permute(self, nums: list[int]) -> list[list[int]]:
    3. res = []
    4. track = []
    5. n = len(nums)
    6. used = [0] * n
    7. def backtrack():
    8. if len(track)==n:
    9. s = copy.deepcopy(track)
    10. res.append(s)
    11. for i in range(n):
    12. if not used[i]:
    13. used[i] = 1
    14. track.append(nums[i])
    15. backtrack()
    16. track.remove(nums[i])
    17. used[i] = 0
    18. backtrack()
    19. return res