2017-02-26 116 views
1

我想解决一个生物信息学问题。基本上,用户输入一个整数,并且输出所有可能的A,C,G,T排列,这些排列是所估算整数的长度。整数可以更大4.例如:如何在python中生成所有可能的排列?

如果用户输入2,I将输出:

['AA', 'AC', 'AG', 'AT', 'CA', 'CC', 'CG', 'CT', 'GA', 'GC', 'GG', 'GT'] 

如果用户输入5,I将输出:

['AAAAA', 'AAAAC', 'AAAAG', 'AAAAT', 'AAACA'.....'TTTGT', 'TTTTA', 'TTTTG', 'TTTTT'] 

你知道如何在python 2.7中为此做一个函数?

+1

还有的'itertools'模块中这样的功能。 https://docs.python.org/2/library/itertools.html#itertools.permutations – GarethPW

+0

@GarethPW它是不正确的函数,它不会产生相同的元素,例如“AA”。 – Arman

+0

你不是在寻找排列,而是为了重复组合。 –

回答

3

您需要product

l = "ACGT" 

from itertools import product  
print([''.join(s) for s in product(l, repeat=2)]) 
# ['AA', 'AC', 'AG', 'AT', 'CA', 'CC', 'CG', 'CT', 'GA', 'GC', 'GG', 'GT', 'TA', 'TC', 'TG', 'TT'] 
+0

非常感谢! –

相关问题