Задача на python. размещения - Общение Python мододелов

Вопрос Задача на python. размещения

Регистрация
1 Апр 2013
Сообщения
96
Репутация
1
Спасибо
1
Монет
0
Напишите программу, которая строит все размещения из N заданных элементов по K , то есть все множества, состоящие из K элементов, где элементы не могут повторяться.



Входные данные

Первая входная строка содержит исходное множество из N элементов, каждый из которых обозначен латинской буквой. Во второй строке записывается число K ( K ≥ 1 ).



Выходные данные

Программа должна вывести все размещения из N заданных элементов по K . Размещения должны быть выведены по одному в строчке в алфавитном порядке. После всех размещений в отдельной строке выводится их количество.

Пример:

входные данные

ABC

2



выходные данные

AB

AC

BA

BC

CA

CB

6
 
Регистрация
19 Окт 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
import sys
import itertools

def main():
data = sys.stdin.read().split()
elems, k = sorted(data[0]), int(data[1])
= [''.join(x) for x in itertools.permutations(elems, k)]
perms.sort()
print('\n'.join(perms))
print(len(perms))

if __name__ == '__main__':
main()
 
Регистрация
22 Ноя 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
elements = list(data[0].strip())
k = int(data[1])

# Получаем все перестановки длины k.
perms = [''.join(p) for p in permutations(elements, k)]
# Отсортируем полученные размещения по алфавиту.
perms.sort()

# Выводим каждое размещение на отдельной строке.
for perm in perms:
print(perm)
# Выводим общее количество размещений.
print(len(perms))
 
Регистрация
3 Дек 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
import itertools
for n, v in enumerate(itertools.permutations(sorted(input()), int(input())), 1):
print(*v, sep='')
print(n)
 
Сверху Снизу