Algoritmo de fuerza bruta para la creación del tablero de Sudoku

Lo que estoy desarrollando es que inicialmente todo el tablero de sudoku está vacío. Una de las celdas aleatorias (de 81) se llena con un valor aleatorio (1-9).

Ahora quiero llenar todas las celdas restantes usando el enfoque de fuerza bruta.
Lo que supe después de buscar en Google es que debemos comenzar con la primera celda y llenarla con 1 (si es válida), luego llenar la segunda celda con 2 (si es válida, comenzaremos a verificar con un número mayor que el última celda llena, que en este caso es 1, una vez que llegamos a 9, la reiniciamos con 1).

¡La cosa es que no funciona correctamente!

¿Alguien puede vincularme al algoritmo exacto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta