私は組み合わせの代わりに順列を使うのを間違っていました。ユーザーがこのプログラムに入力する名前を、2つのペアで印刷することになっています。私のコードの断片です、完全なコードはHERE見つけることができるので、一般的な質問は可能なすべての名前の組み合わせを印刷する代わりに、どのように私は2の反復ペアを印刷できますか?あなたはすべての可能な組み合わせを作成するためにitertools.combinations()
を使用して、すべてのユニークな組み合わせをフィルタリングするset()
を使用することができます組み合わせへの順列を変更する(PYTHON)
names = []
for i in range(n): names.append(raw_input("Enter name " + str(i + 1) + ": "))
count = 0
def perm(a, k=0):
global count
if (k == len(a)):
print a
count += 1
else:
for i in xrange(k, len(a)):
a[k], a[i] = a[i], a[k]
perm(a, k + 1)
a[k], a[i] = a[i], a[k]
if n % 2 == 0:
print""
perm(names)
print"total combinations available: " + str(count)
else:
perm(names)
print"total combinations available: " + str(count)
print("please enter an even number next time")
sys.exit()
'itertools.combinations()'と 'set()'を使います。 –
@leafこれでどのくらい正確に行くのですか? "for i"から "for"文までのすべてを削除して置き換えますか?申し訳ありません本当にnoobie –