Skip to main content
1 of 1
Post Made Community Wiki
David Eppstein
  • 18.6k
  • 2
  • 55
  • 127

I suggest Reverse Search for Enumeration (Avis and Fukuda, Discrete Applied Mathematics, 1996). Essentially, whenever you have a way of canonically reducing a combinatorial object to a simpler one of the same type, you have an enumeration algorithm. It does not need a definition of a total ordering (or rather, a total ordering falls out of the enumeration algorithm rather than being something you define a priori) and like the McCay method already mentioned above it does not need to check against all previously generated objects, so it can be highly efficient.

David Eppstein
  • 18.6k
  • 2
  • 55
  • 127