🦕 Combinatorial generators including combinations, permutations, combinations with replacement, permutations with replacement, cartesian products, and power sets.
Yields r length Arrays from the input iterable. Order of selection is
important and elements are chosen without replacement. If r is undefined, then
the length of the iterable is used.