私はこれに対する答えを見つけられませんでした。申し訳ありませんが一般的な場合。私はちょっと初心者です。私はこのようなループのために作成してい再帰的なfor動的ポインタ
は(辞書スクリプトを作成するには):
for i1 in range(len(n)):
for i2 in range(len(n)):
for i3 in range(len(n)):
for i4 in range(len(n)):
for i5 in range(len(n)):
for i6 in range(len(n)):
word = n[i1] + n[i2] + n[i3] + n[i4] + n[i5] + n[i6]
そして私は、私はループの数を選択することができている再帰バージョンを作成したいと思います。だから、もし私がもっと大きな言葉を持っていれば、それは十分にループするでしょう。 そして、私は(その単語の作成のために)後でポインタ変数が必要になりますので、私は
n = len(string)
def loop(n): #'n' is a string and the length would be the number of recursions
if n > 0:
var1 [defining my dynam. var]
for var1 in range(len(string)):
loop(n-1)
else:
return word() #I guess I know how to code this one
[その可能な場合は、しかし、知ってはいけない]動的変数を使用して思った..だから私のような変数を持つようにしたいですvar1、var2、var3などを入れてください。 ヘルプ/指示は大歓迎です! ありがとうございます!
編集: ご迷惑をおかけして申し訳ありません。 これを行うべきかどうかわかりません(上記を消去する必要がありますか?)。私は自分が望むものの反復バージョンを作成することができました。文字列を入力し、それらの文字との可能なすべての組み合わせでリストを印刷する。
私が望む出力が得られましたが、6文字に制限されています。再帰的なバージョンでは、入力を取得して必要な数のループを作成することができると思います。 [ベターについて説明?]
を次のように私の実際のスクリプトは、(私は、フィルタ/チェックを行うためのより良い方法があることを知っています)です:
def rec():
word = ""
txtfile = open(arq,'w') #arq is the string input + .txt
s=0 #Counts the number of words writen
t=0 #tests if the word exists
for i1 in range(len(n)):
for i2 in range(len(n)):
for i3 in range(len(n)):
for i4 in range(len(n)):
for i5 in range(len(n)):
for i6 in range(len(n)):
#This is a filter for not repeating the same character in a word
if not (i1 == i2 or i1 == i3 or i1 == i4 or i1 == i5 or i1 == i6 \
or i2 == i3 or i2 ==i4 or i2 == i5 or i2 ==i6 \
or i3 == i4 or i3 == i5 or i3 == i6 \
or i4 == i5 or i4 == i6 \
or i5 == i6):
word = n[i1] + n[i2] + n[i3] + n[i4] + n[i5] + n[i6]
txtfile.close()
data_file = open(arq)
#This one search for the word in the file, for not having duplicates
for line in data_file:
if line == word + "\n" :
t = 1
else:
pass
data_file.close()
if not t == 1:
s+=1
txtfile = open(arq,'a')
txtfile.writelines(word + "\n")
t=0
print ("Number of words writen:",s)
「eeeeee」のための私の出力がちょうど1つです文字列、例として。 はまたバッジのための最初のものがある: バッジ badgse badegs badesg badsge badseg bagdes bagdse bageds bagesd bagsde がbagsed baedgs
おかげでフィードバックのために多くのことを!
7074051/all-possible-all-possible-three-letters-keywords)ソリューションです。 – malloc47
あなたがしようとしていることを理解することは難しいです。あなたは解決したい問題のより良い定義を与えることができますか? –
再帰的なバージョンがほしいと思っていますが、代わりに 'itertools.combinations_wit_replacement'を使用します。標準よりはるかに簡単/高速:) –