Generating set partitions into equal-sized parts: first version, uses vector
Generating set partitions into equal-sized parts: second version, uses arrays