| 1 | Start backtrack | 0 | [] | Add [] to result | [[]] |
| 2 | Loop i=0 | 0 | [] | Add nums[0]=1 | [[], [1]] |
| 3 | Recurse backtrack | 1 | [1] | Add [1] to result | [[], [1]] |
| 4 | Loop i=1 | 1 | [1] | Add nums[1]=2 | [[], [1], [1,2]] |
| 5 | Recurse backtrack | 2 | [1,2] | Add [1,2] to result | [[], [1], [1,2]] |
| 6 | Loop i=2 | 2 | [1,2] | Add nums[2]=3 | [[], [1], [1,2], [1,2,3]] |
| 7 | Recurse backtrack | 3 | [1,2,3] | Add [1,2,3] to result | [[], [1], [1,2], [1,2,3]] |
| 8 | Loop ends | 3 | [1,2,3] | Backtrack: remove 3 | [[], [1], [1,2], [1,2,3]] |
| 9 | Backtrack | 2 | [1,2] | Backtrack: remove 2 | [[], [1], [1,2], [1,2,3]] |
| 10 | Loop i=2 | 1 | [1] | Add nums[2]=3 | [[], [1], [1,2], [1,2,3], [1,3]] |
| 11 | Recurse backtrack | 3 | [1,3] | Add [1,3] to result | [[], [1], [1,2], [1,2,3], [1,3]] |
| 12 | Loop ends | 3 | [1,3] | Backtrack: remove 3 | [[], [1], [1,2], [1,2,3], [1,3]] |
| 13 | Backtrack | 1 | [1] | Backtrack: remove 1 | [[], [1], [1,2], [1,2,3], [1,3]] |
| 14 | Loop i=1 | 0 | [] | Add nums[1]=2 | [[], [1], [1,2], [1,2,3], [1,3], [2]] |
| 15 | Recurse backtrack | 2 | [2] | Add [2] to result | [[], [1], [1,2], [1,2,3], [1,3], [2]] |
| 16 | Loop i=2 | 2 | [2] | Add nums[2]=3 | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3]] |
| 17 | Recurse backtrack | 3 | [2,3] | Add [2,3] to result | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3]] |
| 18 | Loop ends | 3 | [2,3] | Backtrack: remove 3 | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3]] |
| 19 | Backtrack | 2 | [2] | Backtrack: remove 2 | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3]] |
| 20 | Loop i=2 | 0 | [] | Add nums[2]=3 | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3], [3]] |
| 21 | Recurse backtrack | 3 | [3] | Add [3] to result | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3], [3]] |
| 22 | Loop ends | 3 | [3] | Backtrack: remove 3 | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3], [3]] |
| 23 | Backtrack | 0 | [] | Loop ends, done | [[], [1], [1,2], [1,2,3], [1,3], [2], [2,3], [3]] |