Я допустил ошибку в использовании перестановок вместо комбинаций, я должен печатать имена, которые пользователь вводит в эти программы парами из двух, а не все перестановки имен вместе здесь является фрагментом моего кода, полный код может быть найден HERE Итак, общий вопрос заключается в том, чтобы не печатать каждую возможную комбинацию имен, как я могу напечатать не повторяющиеся пары из 2?изменение перестановки в комбинации (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, как именно я буду заниматься этим? удалить все между «для i» до оператора «for» и заменить его? извините im действительно noobie –