permutes the positions of the elements of expr according to the permutation perm.


returns the list of permuted forms of expr under the elements of the permutation group gr.


  • Permute works with any nonatomic expressions, operating on the first level of expressions.
  • Permute reorders the elements of an expression but never changes its length.
  • The permutation perm can be given in disjoint cyclic form or as a permutation list.
  • When perm is given in cyclic form Cycles[{cyc1,cyc2,}], a cycle {p1,p2,} moves the elements of expr in a cyclic manner so that expr[[pi]] is moved to position pi+1.
  • When perm is given as a permutation list, the result is equivalent to the use of Permute[expr,PermutationCycles[perm]].
  • A permutation group gr can be specified by generators, with head PermutationGroup, or in named form, with head SymmetricGroup, AlternatingGroup, .


open allclose all

Basic Examples  (3)

Cyclic permutation of three elements in a list:

Take the lowercase alphabet:

Exchange the first and last character:

Permute several characters:

Permute an expression under all elements of a group:

Scope  (3)

Permute the parts of an expression:

Permute the parts of an expression under all elements of a group:

Give a permutation in list form. The length of the expression does not change:

Applications  (1)

The eight possible rotations and reflections of a square:

Properties & Relations  (5)

Permute never changes the number of parts of an expression. It simply reorders them:

However, Part can change the number of parts:

When applied to the identity permutation list, Permute is the inverse of PermutationReplace:

Permute can also be used as an alternative to PermutationList:

Another way of inverting the action of Permute is using FindPermutation:

When all parts of the expression are different, the permutation can be uniquely recovered:

Permute is a right action with respect to the product of permutations:

Introduced in 2010