in reply to More effective way of doing this

Hi bisimen,

your program does not work properly even for 3-letter strings. Sorting the output shows that you have duplicates as well as missing words (only showing here words starting with the letter A):

AAA AAA AAA AAC AAC AAT AAT AAT ACA ACA ACA ACC ACC ACT ACT ATA ATA ATA ATC ATC ATT ATT (...)
I did not fully understand your algorithm, but thought you had tested it and that it was correct.