Math Fundamentals18 sections · 814 units
Open in Course

Permutations Pseudocode

(Recursive backtracking)

function permute(nums):

result = []

used = [false] * n

backtrack([], used, result)

return result

function backtrack(current, used, result):

if len(current) == n:

result.append(copy of current)

return

for i from 0 to n-1:

if not used[i]:

  current.append(nums[i])

  used[i] = true

  backtrack(current, used, result)

  current.pop()

  used[i] = false