Encyclopedia of Algorithms

2016 Edition
| Editors: Ming-Yang Kao

Permutation Enumeration

  • Katsuhisa YamanakaEmail author
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...


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

Recommended Reading

  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–262MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Avis D, Fukuda K (1996) Reverse search for enumeration. Discret Appl Math 65(1–3):21–46MathSciNetzbMATHCrossRefGoogle Scholar
  3. 3.
    Goldberg L (1992) Efficient algorithm for listing unlabeled graphs. J Algorithms 13:128–143MathSciNetzbMATHCrossRefGoogle Scholar
  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–285MathSciNetzbMATHCrossRefGoogle Scholar
  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–629MathSciNetzbMATHCrossRefGoogle Scholar
  8. 8.
    Sedgewick R (1977) Permutation generation methods. Comput Surv 9(2):137–164MathSciNetzbMATHCrossRefGoogle Scholar
  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 YorkzbMATHGoogle Scholar
  11. 11.
    Trotter H (1962) Perm (algorithm 115). Commun ACM 5(8):434–435CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  1. 1.Department of Electrical Engineering and Computer Science, Iwate UniversityIwateJapan