public class PermutationGenerator<E>
Systematically generate permutations.
Adapted from Java Code by Michael Gilleland (released with no restrictions) using an algorithm described here:
Kenneth H. Rosen, Discrete Mathematics and Its Applications, 2nd edition (NY: McGraw-Hill, 1991), pp. 282-284
public PermutationGenerator(java.util.Collection<E> items)
WARNING: Don't make n too large.
Recall that the number of permutations is n!
which can be very large, even when n is as small as 20 --
20! = 2,432,902,008,176,640,000 and
21! is too big to fit into a Java long, which is
why we use BigInteger instead.
items - the items to permute
public void reset()
public java.math.BigInteger getTotal()
public boolean hasNext()
hasNext in interface java.util.Iterator<java.util.List<E>>