Papers
Topics
Authors
Recent
Search
2000 character limit reached

Full Permutations in Combinatorics

Updated 7 July 2026
  • Full permutations are maximal reorderings defined within specific combinatorial frameworks, including full-length multiset arrangements and dynamics in permutation matrices.
  • Algorithmic methods such as Rohl’s algorithm and adjacent-transposition Gray codes ensure efficient, complete, and unique generation of these permutations.
  • In bootstrap percolation, full permutations refer to matrices that fully mutate to ones, linking to generating functions and optimal traversal on geometric structures.

Searching arXiv for papers related to "full permutations" and adjacent terminology. The expression full permutations is not fully standardized across the combinatorics literature. In algorithmic generation, it commonly denotes permutations of full length—that is, all distinct reorderings of a multiset of size nn. In other settings, the same adjective is specialized: a permutation matrix may be called full when bootstrap percolation fills the entire n×nn\times n board, and a permutation polynomial may be called full-cycle when it induces a single cycle on Fp\mathbb{F}_p. Across these usages, the common thread is maximality with respect to the ambient structure: full length, full growth, or full cyclic orbit (Ganapathi et al., 2010, Huibregtse et al., 4 Aug 2025, Cesmelioglu, 2010).

1. Terminological scope

In the algorithmic setting of multiset rearrangements, the relevant problem is to generate all full permutations of length nn, meaning all distinct reorderings of a multiset

L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].

If the multiset contains pp distinct values {o1,,op}\{o_1,\dots,o_p\}, with multiplicities m1,,mpm_1,\dots,m_p satisfying i=1pmi=n\sum_{i=1}^p m_i=n, then the number of distinct full permutations is

n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.

This is the sense used in the combinatorial-generation framework of Rohl’s algorithm and its variants (Ganapathi et al., 2010).

A different, structurally richer use appears in bootstrap percolation on permutation matrices. There, a permutation n×nn\times n0 is called full if, starting from the permutation matrix of n×nn\times n1, the percolation process ends with one single n×nn\times n2 block of n×nn\times n3’s; equivalently, every zero eventually mutates (Huibregtse et al., 4 Aug 2025). This definition is not about exhaustive rearrangement of symbols, but about a dynamical property of the matrix representation of a permutation.

A third use occurs in finite-field permutation polynomials. A full-cycle permutation polynomial is one whose induced permutation on n×nn\times n4 is a single n×nn\times n5-cycle. In that setting, “full” modifies the cycle structure rather than the support or matrix growth (Cesmelioglu, 2010).

This suggests that the phrase is best treated as a family of context-dependent technical terms rather than a single invariant notion.

2. Full permutations as distinct reorderings of multisets

For a multiset input, the basic objective is to output each distinct arrangement exactly once. Rohl’s algorithm does this by separating the distinct values from their multiplicities. It maintains an array n×nn\times n6 of distinct values in some imposed order, a count array Count[1..p] with

n×nn\times n7

and an output array n×nn\times n8 that is filled recursively (Ganapathi et al., 2010).

The recursive procedure chooses, at each position n×nn\times n9, one of the Fp\mathbb{F}_p0 distinct values whose remaining count is positive, writes it into Fp\mathbb{F}_p1, decrements the corresponding count, recurses, and then restores the count on backtracking. The construction is therefore multiplicity-aware from the outset, so duplicate outputs never arise from repeated symbols (Ganapathi et al., 2010).

The correctness argument has three components. Validity follows because a value Fp\mathbb{F}_p2 is used only when Fp\mathbb{F}_p3, so no symbol can appear more times than its multiplicity. Uniqueness follows because each recursive path is determined by the sequence of indices chosen, and different such paths yield different outputs. Completeness follows because the recursion explores every feasible sequence of multiplicity-respecting choices until Fp\mathbb{F}_p4, at which point a full assignment is printed (Ganapathi et al., 2010).

The worked example

Fp\mathbb{F}_p5

has initial count vector Fp\mathbb{F}_p6 and produces Fp\mathbb{F}_p7 distinct full permutations, matching

Fp\mathbb{F}_p8

The resulting outputs include Fp\mathbb{F}_p9, nn0, nn1, and continue through nn2 (Ganapathi et al., 2010).

3. Generation frameworks on ordinary permutations

When repetitions are absent, full permutations coincide with the symmetric group nn3. In the permutation-language framework, the alphabet is

nn4

and a permutation nn5 is encoded in one-line notation as the word

nn6

with nn7 and no repetition. The associated permutation language is

nn8

This furnishes a formal grammar for recursively generating all permutations via insertion and removal operators (Hartung et al., 2019).

The insertion operators are

nn9

and the removal operator is

L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].0

where L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].1. These operators support recursive constructions in which permutations of size L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].2 are obtained as children of permutations of size L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].3 (Hartung et al., 2019).

The central generation procedure is the greedy minimal-jump algorithm L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].4. Starting from the seed L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].5, it repeatedly considers values L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].6 from L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].7 down to L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].8, finds the unique minimal jump of value L=[l1,l2,,ln].\mathcal{L}=[\,l_1,l_2,\ldots,l_n\,].9 that yields an unvisited permutation in the language, and visits the resulting word. Jumps are cyclic rotations of substrings; for ordinary permutations this mechanism specializes to adjacent-transposition Gray coding (Hartung et al., 2019).

A key transition rule is given explicitly. If

pp0

with pp1, then a right jump by pp2 steps is

pp3

For pp4, each jump of the largest feasible value is by exactly one position, so the move is an adjacent swap. In this specialization, the method reproduces the Steinhaus–Johnson–Trotter order (Hartung et al., 2019).

The implementation uses pp5 extra space and achieves pp6 amortized time per new permutation. The space bound comes from storing the current permutation in an array pos[1…n] giving positions of values, together with an inversion-count or adjacent-link structure. The time bound follows from maintaining, for each value pp7, its current neighbors to the left and right, so that only a local neighborhood changes under each swap (Hartung et al., 2019).

4. Hamiltonicity, Gray codes, and structural optimality

The permutation-language framework does more than enumerate pp8; it realizes the enumeration geometrically on the permutahedron. The permutahedron pp9 is the convex hull of the {o1,,op}\{o_1,\dots,o_p\}0 points {o1,,op}\{o_1,\dots,o_p\}1 for {o1,,op}\{o_1,\dots,o_p\}2, and its {o1,,op}\{o_1,\dots,o_p\}3-skeleton has vertices {o1,,op}\{o_1,\dots,o_p\}4 with edges joining permutations that differ by one adjacent transposition (Hartung et al., 2019).

Because the listing produced by Algorithm {o1,,op}\{o_1,\dots,o_p\}5 visits every permutation exactly once and moves only along adjacent-transposition edges, it is a Hamiltonian path on the graph {o1,,op}\{o_1,\dots,o_p\}6. In polytopal notation,

{o1,,op}\{o_1,\dots,o_p\}7

The inductive proof lifts a Hamiltonian path on {o1,,op}\{o_1,\dots,o_p\}8 through alternating child sequences {o1,,op}\{o_1,\dots,o_p\}9, arranged in zigzag order, and then stitches the lifted paths into a single Hamiltonian path on m1,,mpm_1,\dots,m_p0 (Hartung et al., 2019).

This Hamiltonian-path interpretation supplies what the source explicitly calls a provable notion of optimality for the Gray codes obtained from the framework: they translate into walks along the edges of a polytope (Hartung et al., 2019). For full permutations in the ordinary m1,,mpm_1,\dots,m_p1 sense, the Gray code is therefore not merely an ordering but a combinatorially and geometrically structured traversal.

The same framework also supports loopless implementation by maintaining an array of active jump directions, yielding worst-case m1,,mpm_1,\dots,m_p2 per new permutation, and it extends to prefix-rotation Gray codes and pattern-restricted permutation languages (Hartung et al., 2019). These extensions show that the exhaustive generation of full permutations sits inside a larger language-theoretic program for combinatorial generation.

5. Full permutations under bootstrap percolation

In the bootstrap-percolation setting, the initial object is the permutation matrix of m1,,mpm_1,\dots,m_p3: the unique m1,,mpm_1,\dots,m_p4 in row m1,,mpm_1,\dots,m_p5 lies in column m1,,mpm_1,\dots,m_p6. A zero cell m1,,mpm_1,\dots,m_p7 is mutable if at least two of its four cardinal neighbors contain m1,,mpm_1,\dots,m_p8, and when mutable it is changed from m1,,mpm_1,\dots,m_p9 to i=1pmi=n\sum_{i=1}^p m_i=n0. Iterating this update yields a final configuration i=1pmi=n\sum_{i=1}^p m_i=n1, and the order of mutations does not affect the terminal outcome (Huibregtse et al., 4 Aug 2025).

A permutation is full when the percolation ends with one single i=1pmi=n\sum_{i=1}^p m_i=n2 block of i=1pmi=n\sum_{i=1}^p m_i=n3’s. Equivalently, every zero eventually mutates (Huibregtse et al., 4 Aug 2025). For example, i=1pmi=n\sum_{i=1}^p m_i=n4 is full, while i=1pmi=n\sum_{i=1}^p m_i=n5 is a no-growth permutation (Huibregtse et al., 4 Aug 2025).

The number i=1pmi=n\sum_{i=1}^p m_i=n6 of full permutations in i=1pmi=n\sum_{i=1}^p m_i=n7 satisfies

i=1pmi=n\sum_{i=1}^p m_i=n8

where i=1pmi=n\sum_{i=1}^p m_i=n9 is the n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.0st large Schröder number. The generating function is stated as

n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.1

and

n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.2

The Schröder recurrence appears in the form

n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.3

and is recovered combinatorially from the structure of full permutations (Huibregtse et al., 4 Aug 2025).

A central structural tool is indecomposability. A permutation n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.4 is indecomposable if no prefix n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.5 is itself a permutation of n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.6. Writing n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.7 for the number of full indecomposable permutations, the paper proves the half-lemma

n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.8

The proof uses reversal

n!m1!m2!mp!.\frac{n!}{m_1!\,m_2!\,\cdots\,m_p!}\,.9

which preserves fullness and interchanges indecomposable and decomposable full permutations (Huibregtse et al., 4 Aug 2025).

This use of “full permutation” differs fundamentally from the generation sense. Here fullness is a global growth property of the matrix under a local mutation rule, not an indication that all positions are occupied by a permutation word of maximal length.

A neighboring but distinct notion is the full-cycle permutation polynomial over n×nn\times n00, with n×nn\times n01 an odd prime. Under the isomorphism between the group of permutation polynomials over n×nn\times n02 and the symmetric group n×nn\times n03, a polynomial is full-cycle precisely when it induces a single n×nn\times n04-cycle. Every such polynomial is conjugate to

n×nn\times n05

and Çeşmelioğlu’s characterization gives an explicit Carlitz-type form for all of them (Cesmelioglu, 2010). This is a cycle-theoretic use of “full,” not a use tied to exhaustive listing or bootstrap growth.

The literature on universal containment raises a different extremal perspective. A word over n×nn\times n06 containing every permutation of length n×nn\times n07 as a contiguous factor is an n×nn\times n08-superpermutation, while a word over n×nn\times n09 containing every permutation of length n×nn\times n10 as an order-isomorphic subsequence is an n×nn\times n11-superpattern (Engen et al., 2018). These objects are not full permutations themselves; rather, they are ambient words containing all permutations. The distinction matters because “containing all permutations” concerns universal hosts rather than permutation objects with a fullness property.

A further adjacent notion is n×nn\times n12-prolificity. A permutation n×nn\times n13 is n×nn\times n14-prolific if every n×nn\times n15-pattern obtained by deleting n×nn\times n16 positions is distinct. The classification theorem states that n×nn\times n17 is n×nn\times n18-prolific if and only if its minimum n×nn\times n19 distance between any two plot-points is at least n×nn\times n20, and such permutations exist precisely when

n×nn\times n21

Again, this is not a definition of fullness, but it is closely connected to maximal pattern diversity under deletion (Bevan et al., 2016).

These nearby notions help delimit the concept. A full permutation in one paper may mean a full-length multiset arrangement; in another, a matrix that fills under percolation; in another, a permutation polynomial with one full orbit. The surrounding vocabulary—generation, percolation, cycle structure, or pattern containment—determines the intended meaning.

7. Conceptual synthesis

Taken collectively, the arXiv literature shows that full permutations is best understood as a context-sensitive term attached to a maximality condition internal to a specific model. In multiset generation, the maximality is positional: one seeks length-n×nn\times n22 reorderings using all available symbols with their full multiplicities (Ganapathi et al., 2010). In permutation-language generation over n×nn\times n23, the same exhaustive scope is encoded as the full language n×nn\times n24, with Gray-code orderings, n×nn\times n25-amortized generation, and Hamiltonian paths on the permutahedron (Hartung et al., 2019). In bootstrap percolation, the maximality is dynamical and geometric: the permutation matrix grows to the all-n×nn\times n26 matrix, and the resulting counting sequence is the large Schröder numbers (Huibregtse et al., 4 Aug 2025). In permutation polynomials, the maximality is orbital: the induced action is one cycle of length n×nn\times n27 (Cesmelioglu, 2010).

A plausible implication is that the phrase should not be used in isolation when precision matters. For research exposition, the modifier is most informative when anchored explicitly to its ambient structure: full permutations of a multiset, full permutations under bootstrap percolation, or full-cycle permutation polynomials. That practice aligns with the actual distribution of meanings in the literature and reduces the risk of conflating exhaustive generation, dynamical saturation, and cycle-theoretic transitivity.

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to Full Permutations.