For each of the three axes, define a certain rotation direction as positive. Then there are nine basic moves you can do, three on each axis, always turning one step in the positive direction. Let M be the set of these nine moves. From a given starting position, every possible position can be achieved in a finite number of steps, where each step is an element of M. One of these possible positions is the solution.

The set

**Quote:**

M union M^{2} union M^{3} union ...

is countable, so list all of the elements of this set in a certain order, interpret them as instructions, and try them one at a time. Reset the cube after each attempt by doing the instructions backwards.

There, it's solved. The rest is just optimisation.

WARNING: This method is guaranteed to solve the cube in a finite number of steps, but depending on the ordering you pick, it could be a very high finite number.