A recursive Sudoku solver