The Art of Computer Programming. Vol.4, Fascicle 2 : Generating All Tuples and Permutations - Knuth, Donald Ervin (Addison-Wesley, 2005)