# Encyclopedia of Algorithms

2016 Edition
| Editors: Ming-Yang Kao

# Permutation Enumeration

• Katsuhisa Yamanaka
Reference work entry
DOI: https://doi.org/10.1007/978-1-4939-2864-4_735

## Years and Authors of Summarized Original Work

• 1962; Trotter

• 1963; Johnson

• 1977; Sedgewick

• 2008; Sekine, Yamanaka, Nakano

## Problem Definition

### Permutation Enumeration

Let Sn be the set of permutations of [n] = { 1, 2, , n}. We write a permutation as a sequence of elements in [n] such that each element appears exactly once. A permutation enumeration is to list all permutations in Sn. For example, there are 24 permutations of [4]: 1234, 1243, 1324, 1342, 1423, 1432, 2134, 2143, 2314, 2341, 2413, 2431, 3124, 3142, 3214, 3241, 3412, 3421, 4123, 4132, 4213, 4231, 4312, 4321. The enumeration of permutations is a basic and long-standing enumeration problem, and it was surveyed by Sedgewick [8].

Note that the above example lists all the permutations of [4], and we have listed them in lexicographic order, which is the most natural way to enumerate them. The purpose of this paper is to introduce representative methods for enumeration problems by showing how these methods are applied to...

## Keywords

Combinatorial Gray code; Enumeration; Permutation; Partition search; Reverse search
This is a preview of subscription content, log in to check access.

1. 1.
Arimura H, Uno T (2007) An efficient polynomial space and polynomial delay algorithm for enumeration of maximal motifs in a sequence. J Comb Optim 13:243–262
2. 2.
Avis D, Fukuda K (1996) Reverse search for enumeration. Discret Appl Math 65(1–3):21–46
3. 3.
Goldberg L (1992) Efficient algorithm for listing unlabeled graphs. J Algorithms 13:128–143
4. 4.
Goldberg L (1993) Polynomial space polynomial delay algorithms for listing families of graphs. In: Proceedings of the 25th annual ACM symposium on theory of computing, San Diego, pp 218–225Google Scholar
5. 5.
Johnson S (1963) Generation of permutations by adjacent transposition. Math Comput 17:282–285
6. 6.
Nakano S, Uno T (2004) Constant time generation of trees with specified diameter. In: Proceedings of the 30th workshop on graph-theoretic concepts in computer science (WG 2004), Bad Honnef. LNCS, vol 3353, pp 33–45Google Scholar
7. 7.
Savage C (1997) A survey of combinatorial gray codes. SIAM Rev 39(4):605–629
8. 8.
Sedgewick R (1977) Permutation generation methods. Comput Surv 9(2):137–164
9. 9.
Sekine K, Yamanaka K, Nakano S (2008) Enumeration of permutations. IEICE Trans Fundam Electron Commun Comput Sci J91-A(5):543–549 (in Japanese)Google Scholar
10. 10.
Steinhaus H (1964) One hundred problems in elementary mathematics. Basic Books, New York
11. 11.
Trotter H (1962) Perm (algorithm 115). Commun ACM 5(8):434–435