This class generates a cartesian product of a set of arrays. It is useful when the number of arrays for which the product is required is only known at runtime, so that the product cannot be accomplished with a nested loop of foreach statements.
It can be used like an enumeration, going through one combination tuple at a time, until the combinations are exhausted.
@author Andres Quiroz Hernandez
@version 6.0