| 1 | Start | 0 | [] | Begin recursion | [] |
| 2 | Exclude element 1 | 1 | [] | Exclude arr[0]=1 | [] |
| 3 | Exclude element 2 | 2 | [] | Exclude arr[1]=2 | [] |
| 4 | Exclude element 3 | 3 | [] | Exclude arr[2]=3 | [] |
| 5 | Add subset | 3 | [] | Reached end, add [] | [[]] |
| 6 | Include element 3 | 3 | [3] | Include arr[2]=3 | [[], [3]] |
| 7 | Backtrack to index 2 | 2 | [] | Backtrack | [[], [3]] |
| 8 | Include element 2 | 2 | [2] | Include arr[1]=2 | [[], [3]] |
| 9 | Exclude element 3 | 3 | [2] | Exclude arr[2]=3 | [[], [3], [2]] |
| 10 | Add subset | 3 | [2] | Reached end, add [2] | [[], [3], [2]] |
| 11 | Include element 3 | 3 | [2,3] | Include arr[2]=3 | [[], [3], [2], [2,3]] |
| 12 | Backtrack to index 1 | 1 | [] | Backtrack | [[], [3], [2], [2,3]] |
| 13 | Include element 1 | 1 | [1] | Include arr[0]=1 | [[], [3], [2], [2,3]] |
| 14 | Exclude element 2 | 2 | [1] | Exclude arr[1]=2 | [[], [3], [2], [2,3]] |
| 15 | Exclude element 3 | 3 | [1] | Exclude arr[2]=3 | [[], [3], [2], [2,3], [1]] |
| 16 | Add subset | 3 | [1] | Reached end, add [1] | [[], [3], [2], [2,3], [1]] |
| 17 | Include element 3 | 3 | [1,3] | Include arr[2]=3 | [[], [3], [2], [2,3], [1], [1,3]] |
| 18 | Backtrack to index 2 | 2 | [1] | Backtrack | [[], [3], [2], [2,3], [1], [1,3]] |
| 19 | Include element 2 | 2 | [1,2] | Include arr[1]=2 | [[], [3], [2], [2,3], [1], [1,3]] |
| 20 | Exclude element 3 | 3 | [1,2] | Exclude arr[2]=3 | [[], [3], [2], [2,3], [1], [1,3], [1,2]] |
| 21 | Add subset | 3 | [1,2] | Reached end, add [1,2] | [[], [3], [2], [2,3], [1], [1,3], [1,2]] |
| 22 | Include element 3 | 3 | [1,2,3] | Include arr[2]=3 | [[], [3], [2], [2,3], [1], [1,3], [1,2], [1,2,3]] |
| 23 | End | 3 | [] | All subsets generated | [[], [3], [2], [2,3], [1], [1,3], [1,2], [1,2,3]] |