Backtrack with used set to track which elements are in current permutation.
function permute(nums): result = [] def backtrack(current): if len(current) == len(nums): result.append(current[:]) return for num in nums: if num not in current: current.append(num) backtrack(current) current.pop() backtrack([]) return result
time.