【发布时间】:2018-02-08 04:42:42
【问题描述】:
我有一个由 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',但也许它可以,我只是做错了。
【问题讨论】:
标签: python string list combinations permutation