Implementing a recursive Sudoku solver in Python. The first step is to generate possible candidates for each empty cell by scanning rows, columns and sub-grids. Whenever there’s only one possible candidate, the cell is filled with that value. Next, the solver guesses one value and the process continues recursively until a valid solution is found.

Computer Science learning blog