Hello,

I'm currently doing some studying related to sudokus and I'm facing a challenge I'm not sure how to solve.

The task or challenge is to design a program that would check if one sudoku is a permutation of another.

That means the second sudoku would have been generated from the first one by applying one or more of the following operations:

Relabeling symbols (9!)

Band permutations (3!)

Row permutations within a band (3!3)

Stack permutations (3!)

Column permutations within a stack (3!3)

Reflection, transposition and rotation (2)

(This list is copied from Wikipedia, numbers in parenthesis represent the amount of sudokus you can design with each operation).

Well, if only one operation has been applied it's quite simple. But I'm struggling to come up with a great solution for a combination of operations.

Brute-Forcing does not seem to be the greatest idea, considering that there are literally billions of solutions when combining all operations.

I'd be happy if someone here could give me a hint into the right direction.

Thanks in advance.