Я играл с моим собственным решателем Sudoku и искал некоторые указатели на хороший и быстрый дизайн, когда я наткнулся на это:
def r(a):i=a.find('0');~i or exit(a);[m
in[(i-j)%9*(i/9^j/9)*(i/27^j/27|i%9/3^j%9/3)or a[j]for
j in range(81)]or r(a[:i]+m+a[i+1:])for m in'%d'%5**18]
from sys import*;r(argv[1])
Моя собственная реализация решает Sudokus так же, как я решаю их в своей голове, но как работает этот критический алгоритм?
http://scottkirkwood.blogspot.com/2006/07/shortest-sudoku-solver-in-python.html