Generator for a list of k-partitions of N qubits such that

all sets of k qubits are perfectly split in at least one partition, following ArXiv:1908.05628

qubit_list(list): list of qubits to be partitioned partition_size(int): the number of sets in the partition. num_iterations(int or None): the number of iterations in the outer iterator. If None, set to ceil(log2(len(qubit_list)))

partition(iterator of tuples of lists): the required partitioning