code: def integer_partition(size: int, nparts: int) -> Iterator[List[List[int]]]:
      
      for part in algorithm_u(range(size), nparts):
          yield part
docs: Partition a list of integers into a list of partitions