To enumerate all the permutations of n distinct objects, numbered 1…n, which satisfies a given set of precedence constraints.  A precedence constraints (a, b) means that in the permutations a should appear before b.