| [] | 0 / not checked | try 1, 2, 3 in order; pop after every child | [] |
| [1] | 1 / not checked | try 1, 2, 3 in order; pop after every child | [] |
| [1,1] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [] |
| [1,1,1] | 3 / 1 | reject repeat; return then parent pops | [] |
| [1,1,2] | 3 / 2 | reject repeat; return then parent pops | [] |
| [1,1,3] | 3 / 2 | reject repeat; return then parent pops | [] |
| [1,2] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [] |
| [1,2,1] | 3 / 2 | reject repeat; return then parent pops | [] |
| [1,2,2] | 3 / 2 | reject repeat; return then parent pops | [] |
| [1,2,3] | 3 / 3 | copy and record; return then parent pops | [[1,2,3]] |
| [1,3] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3]] |
| [1,3,1] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3]] |
| [1,3,2] | 3 / 3 | copy and record; return then parent pops | [[1,2,3],[1,3,2]] |
| [1,3,3] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2]] |
| [2] | 1 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2]] |
| [2,1] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2]] |
| [2,1,1] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2]] |
| [2,1,2] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2]] |
| [2,1,3] | 3 / 3 | copy and record; return then parent pops | [[1,2,3],[1,3,2],[2,1,3]] |
| [2,2] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2],[2,1,3]] |
| [2,2,1] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3]] |
| [2,2,2] | 3 / 1 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3]] |
| [2,2,3] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3]] |
| [2,3] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2],[2,1,3]] |
| [2,3,1] | 3 / 3 | copy and record; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1]] |
| [2,3,2] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1]] |
| [2,3,3] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1]] |
| [3] | 1 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2],[2,1,3],[2,3,1]] |
| [3,1] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2],[2,1,3],[2,3,1]] |
| [3,1,1] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1]] |
| [3,1,2] | 3 / 3 | copy and record; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2]] |
| [3,1,3] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2]] |
| [3,2] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2]] |
| [3,2,1] | 3 / 3 | copy and record; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |
| [3,2,2] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |
| [3,2,3] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |
| [3,3] | 2 / not checked | try 1, 2, 3 in order; pop after every child | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |
| [3,3,1] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |
| [3,3,2] | 3 / 2 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |
| [3,3,3] | 3 / 1 | reject repeat; return then parent pops | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |
| [] restored | 0 | root finished; return | [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] |