def permute_dfs(nums):
result = []
prev_elements = []
def dfs(elements):
if len(elements) == 0:
result.append(prev_elements[:])
for e in elements:
next_elements = elements[:]
next_elements.remove(e)
prev_elements.append(e)
dfs(next_elements)
prev_elements.pop()
dfs(nums)
return result
import itertools
def permute_lib(nums):
return list(map(list, itertools.permutations(nums)))