Background
Sudoku is a number puzzle where, given an \$ n \times n \$ grid divided into boxes of size \$ n \$, each number of \$ 1 \$ to \$ n \$ should appear exactly once in each row, column and box.
In the game of Chess, the King can move to any of (at most) 8 adjacent cells in a turn. "Adjacent" here means horizontally, vertically or diagonally adjacent.
The King's tour is an analogy of the Knight's tour; it is a (possibly open) path that visits every cell exactly once on the given board with Chess King's movements.
Task
Consider a 6-by-6 Sudoku grid:
654 | 321
123 | 654
----+----
462 | 135
315 | 246
----+----
536 | 412
241 | 563
and a King's tour (from 01
to 36
):
01 02 03 | 34 35 36
31 32 33 | 04 05 06
---------+---------
30 23 28 | 27 26 07
22 29 24 | 25 09 08
---------+---------
21 19 16 | 10 14 13
20 17 18 | 15 11 12
The tour forms the 36-digit number 654654564463215641325365231214123321
.
Taking a different King's tour gives larger numbers; for example, I can find a path that starts with 65<6>56446556...
which is definitely greater than the above. You can change the Sudoku board to get even higher numbers:
... | ...
.6. | ...
----+----
..6 | ...
.5. | 6..
----+----
.45 | .6.
6.. | 5..
This incomplete board gives the starting sequence of 666655546...
which is the optimal sequence of 9 starting digits.
Your task is to find the largest such number for standard 9-by-9 Sudoku with 3-by-3 boxes, i.e.
... | ... | ...
... | ... | ...
... | ... | ...
----+-----+----
... | ... | ...
... | ... | ...
... | ... | ...
----+-----+----
... | ... | ...
... | ... | ...
... | ... | ...
Note that this challenge is not code-golf; the focus is to actually find the solutions rather than to write a small program that theoretically works.
Scoring & winning criterion
The score of a submission is the 81-digit number found by your program. The submission with the highest score wins. Your program should also output the Sudoku grid and the King's tour in human-readable form; please include them in your submission.
Your program may output multiple results; your score is the maximum of them.
There's no time limit for your program. If your program continues to run and finds a higher number afterwards, you can update the submission's score by editing the post. Tiebreaker is the earliest time to achieve the score, i.e. either the time of post (if it's not edited yet) or the time of edit when the score was updated (otherwise).