Enumerate, sample, shuffle, combine, permutate, and create products of massive data sets using minimal memory