我有一个由20个字符组成的字符串S
:
S='ARNDCEQGHILKMFPSTWYV'
我需要从给定的输入k生成所有可能的k-mer组合。
当k == 3
时,有8000个组合(20*20*20
),输出列表如下:
output = ['AAA', 'AAR', ..., 'AVV', ..., 'VVV'] #len(output)=8000
当
k == 2
时,有400种组合(20*20
),输出列表如下:output = ['AA', 'AR', 'AN', ..., 'VV'] #len(output)=400
当
k == 1
时,仅有20种组合:output =['A', 'R', 'N', ..., 'Y', 'V'] #len(output)=20
如果数字k
是固定的,比如说k == 3
,那么我知道如何做到这一点:
for a in S:
for b in S:
for c in S:
output.append(a+b+c)
#then len(output)=8000
但是数字k
是随机选择的。
我尝试使用排列,但它不会给我像'AAA'
这样有重复字母的字符串,但也许我做错了。