This paper surveys the numerous methods that have been proposed for permutatmn enumeration by computer. The various algorithms which have been developed over the years are described in detail, and zmplemented in a modern ALc, oL-hke language. All of the algorithms are derived from one rumple control structure.The problems involved with implementing the best of the algorithms on real computers are treated m detail. Assembly-language programs are derived and analyzed fully.The paper is intended not only as a survey of permutation generation methods, but also as a tutomal on how to compare a number of different algorithms for the same task