2017-02-26 5 views
1

私はバイオインフォマティクスの問題を解決しようとしています。基本的には、ユーザは整数を入力し、帰属整数の長さであるA、C、G、Tのすべての可能な順列を出力する。どのようにすべての可能な順列をPythonで生成しますか?

ユーザ入力2場合は、私が出力されます:

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

ユーザ入力5であれば、私が出力されます:

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

ですか整数は、例えば4大きくすることができますこのための関数をPython 2.7で作る方法を知っていますか?

+1

'itertools'モジュールで、このための機能があります。 – 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

ありがとう! –

関連する問題