БГ
while not all(all(*line) for line in sudoku):
for y, line in enumerate(sudoku):
for x, value in enumerate(line):
if value is None: continue
variants = guess(x,y,sudoku)
if len(variants)>1: continue
else:
sudoku[y][x] = variants.pop()
Оцените временную сложность этой решалки судоку