"ABA?"のような文字列を取得する関数があります。疑問符はAまたはBのいずれかのワイルドカードであり、渡された文字列は複数のワイルドカードを持つことができます。可能なすべてのソリューションを持つ配列として複数の文字列を返す必要があります。私のコードははるかに遅いです。私はPythonには新しいので、良い解決策を見つけるのは少し難しいです。いくつかの静的要素による高速順列
"ABA?" 'ABAA'、 'ABAB']を返す必要があります。
from itertools import product
def possibilities(param):
result = []
for i in product([A,B], repeat=param.count('?')):
string = param
for p in [i]:
for val in p:
string = string.replace('?', str(val), 1)
result.append(string)
return result
を私はあなたの質問を理解していません、繰り返しなしで手紙に1つずつ追加したいですか?だからABC出力:ABCA ABCB ABCCもしあなたが何を探しているのかは分かっています:https://docs.python.org/2/library/itertools.html – Teshtek
Cはありません唯一の文字はABですAまたはBのワイルドカード – user2502106