A possible way of working with permutations is by relating them to the reorderings of the elements of a list. This is the standard point of view in the combinatorial approach to permutations, which shifts the emphasis to the permuted expressions, rather than the permutations themselves. This has always been an implicit interpretation of permutation lists in the Wolfram Language, reorderings of Range[n] for some non-negative integer n. Several standard functions in the Wolfram Language allow basic manipulation of permutation lists, and now other functions have been added to work with permutation lists and convert them into their disjoint cyclic form.
Construct the cyclic form of the permutation list. By default, singletons are removed:
Choosing any other head keeps singletons:
Compare with the following:
Vice versa, you can convert a cyclic object into a permutation list of any length:
By default, the length is taken to be the largest integer present in the cycles:
The same function allows changing the length of a permutation list without changing its support:
Permutation lists can be used to permute the parts of an expression with the functions Part and Permute. There are two differences: First, depending on the length of the permutation list, Part may change the number of arguments of the expression, but Permute never changes it. Second, Part and Permute interpret the permutation in different ways.