Дана строка .
Рассматриваются всевозможные непустые уникальные подмножества, состоящие из букв строки. Необходимо распечатать всевозможные множества, состоящие из букв в порядке возрастания (т.е. в порядке возрастания букв во множестве; подмножества одинаковой длины сортировать по алфавиту).
Уникальным множеством считается то, что встречается один раз (то есть перестановки элементов внутри множества не делают его уникальным).
В качестве ответа укажите всевозможные множества в одной строке через пробел.
Решение 1
n = 3
s = ’ABC’
ans = []
for i in range(2**n):
t = i
mn = ’’
for j in range(n):
if t % 2 == 1:
mn += s[j]
t //= 2
if len(mn) > 0:
ans.append(mn)
print(*sorted(ans, key = lambda x: len(x)))
Решение 2
from itertools import combinations
n = 3
s = ’ABC’
ans = []
for j in range(1, 4):
for i in combinations(s, j):
ans.append(’’.join(i))
print(*ans)