Trace [1, 2, 3].
Start with empty permutation [].
Position 0: try 1. Permutation: [1]. Position 1: try 2. Permutation: [1, 2]. Position 2: try 3. Permutation: [1, 2, 3]. Complete! Add to results. Backtrack to [1, 2]. Backtrack to [1]. Try 3. Permutation: [1, 3]. Position 2: try 2. Permutation: [1, 3, 2]. Complete! Backtrack... Position 0: try 2... continue similarly.
Generate all permutations. Each takes to copy. Total: time. Space: for recursion depth plus for output.