while (!isSolved(sudoku)) { sudoku = generateNextPermutation(sudoku); }
https://github.com/tonyedgecombe/Sudoku/blob/master/Sudoku/P...
It's not 1ms but it's not that slow either.