add permutation generation, partitions->TODO