The Art of Computer Programming. Vol.4, Fascicle 3 : Generating All Combinations and Partitions - Knuth, Donald Ervin (Addison-Wesley, 2005)