A possible, but less efficient, Mathematica implementation:
Validity of permutations in cyclic form is checked with PermutationCyclesQ. A permutation list can always be obtained as a permutation of the elements in canonical order using Permute:
Ordering always returns a permutation list, even if the elements of the expression are repeated:
There are 409113 integer numbers up to whose decimal digits form permutation lists. This is how the first 153 (the largest being 54321) are distributed: