Note that the "official" way to solve sudoku is to use "dancing links", but I guess you are creating a naive implementation precisely as a base-line against which to measure other implementations?