| 1 | Start recursion | 0 | [] | Start with empty subset | [] |
| 2 | Include nums[0]=1 | 0 | [] | Add 1 to subset | [] |
| 3 | Recurse with index=1 | 1 | [1] | Include nums[1]=2 | [] |
| 4 | Include nums[1]=2 | 1 | [1] | Add 2 to subset | [] |
| 5 | Recurse with index=2 | 2 | [1,2] | Include nums[2]=3 | [] |
| 6 | Include nums[2]=3 | 2 | [1,2] | Add 3 to subset | [] |
| 7 | Recurse with index=3 | 3 | [1,2,3] | Index == length, add subset | [[1,2,3]] |
| 8 | Backtrack | 2 | [1,2,3] | Remove 3 from subset | [[1,2,3]] |
| 9 | Exclude nums[2]=3 | 2 | [1,2] | Do not add 3 | [[1,2,3]] |
| 10 | Recurse with index=3 | 3 | [1,2] | Index == length, add subset | [[1,2,3],[1,2]] |
| 11 | Backtrack | 1 | [1,2] | Remove 2 from subset | [[1,2,3],[1,2]] |
| 12 | Exclude nums[1]=2 | 1 | [1] | Do not add 2 | [[1,2,3],[1,2]] |
| 13 | Recurse with index=2 | 2 | [1] | Include nums[2]=3 | [[1,2,3],[1,2]] |
| 14 | Include nums[2]=3 | 2 | [1] | Add 3 to subset | [[1,2,3],[1,2]] |
| 15 | Recurse with index=3 | 3 | [1,3] | Index == length, add subset | [[1,2,3],[1,2],[1,3]] |
| 16 | Backtrack | 2 | [1,3] | Remove 3 from subset | [[1,2,3],[1,2],[1,3]] |
| 17 | Exclude nums[2]=3 | 2 | [1] | Do not add 3 | [[1,2,3],[1,2],[1,3]] |
| 18 | Recurse with index=3 | 3 | [1] | Index == length, add subset | [[1,2,3],[1,2],[1,3],[1]] |
| 19 | Backtrack | 0 | [1] | Remove 1 from subset | [[1,2,3],[1,2],[1,3],[1]] |
| 20 | Exclude nums[0]=1 | 0 | [] | Do not add 1 | [[1,2,3],[1,2],[1,3],[1]] |
| 21 | Recurse with index=1 | 1 | [] | Include nums[1]=2 | [[1,2,3],[1,2],[1,3],[1]] |
| 22 | Include nums[1]=2 | 1 | [] | Add 2 to subset | [[1,2,3],[1,2],[1,3],[1]] |
| 23 | Recurse with index=2 | 2 | [2] | Include nums[2]=3 | [[1,2,3],[1,2],[1,3],[1]] |
| 24 | Include nums[2]=3 | 2 | [2] | Add 3 to subset | [[1,2,3],[1,2],[1,3],[1]] |
| 25 | Recurse with index=3 | 3 | [2,3] | Index == length, add subset | [[1,2,3],[1,2],[1,3],[1],[2,3]] |
| 26 | Backtrack | 2 | [2,3] | Remove 3 from subset | [[1,2,3],[1,2],[1,3],[1],[2,3]] |
| 27 | Exclude nums[2]=3 | 2 | [2] | Do not add 3 | [[1,2,3],[1,2],[1,3],[1],[2,3]] |
| 28 | Recurse with index=3 | 3 | [2] | Index == length, add subset | [[1,2,3],[1,2],[1,3],[1],[2,3],[2]] |
| 29 | Backtrack | 1 | [2] | Remove 2 from subset | [[1,2,3],[1,2],[1,3],[1],[2,3],[2]] |
| 30 | Exclude nums[1]=2 | 1 | [] | Do not add 2 | [[1,2,3],[1,2],[1,3],[1],[2,3],[2]] |
| 31 | Recurse with index=2 | 2 | [] | Include nums[2]=3 | [[1,2,3],[1,2],[1,3],[1],[2,3],[2]] |
| 32 | Include nums[2]=3 | 2 | [] | Add 3 to subset | [[1,2,3],[1,2],[1,3],[1],[2,3],[2]] |
| 33 | Recurse with index=3 | 3 | [3] | Index == length, add subset | [[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3]] |
| 34 | Backtrack | 2 | [3] | Remove 3 from subset | [[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3]] |
| 35 | Exclude nums[2]=3 | 2 | [] | Do not add 3 | [[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3]] |
| 36 | Recurse with index=3 | 3 | [] | Index == length, add subset | [[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3],[]] |
| 37 | End recursion | 3 | [] | All subsets generated | [[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3],[]] |