Partitioning a set into lists