alphabet = { 'A': 'A', 'T': 'T', 'C': 'C', 'G': 'G', 'W': 'AT', 'M': 'AC', 'R': 'AG', 'Y': 'TC', 'K': 'TG', 'S': 'CG', 'H': 'ATC', 'D': 'ATG', 'V': 'AGC', 'B': 'CTG', 'N': 'ATCG' }
expand = lambda t: reduce(lambda r, s: [x+y for x in r for y in alphabet[s]], t, ['']) print expand('ATSGS') -------------- ['ATCGC', 'ATCGG', 'ATGGC', 'ATGGG'] -- http://mail.python.org/mailman/listinfo/python-list