Just to see how this would look in python!
Using a trivial approach with the following steps:
- narrow-down the options for each cell by looking up the values in each row, column, block
- make an assumption about a non-trivial cell
- repeat the process recursively till done