Python
from itertools import *
# С повторениями
for i in product('123', repeat=3):
x = ''.join(i)
# БЕЗ повторений
for i in permutations('123', r=3):
x = ''.join(i)
# Проверки
if x[0] != '0': # не начинается с 0
if x.count('1') == 4: # ровно четыре 1
if x[0] != x[1] != x[2]: # одинаковые не рядом
x = x.replace('2', '*') # замена элементов
if x[0] <= x[1] <= x[2]: # алфавитный порядок
if 'НН' not in s and 'ЧЧ' not in s: # чередование Способ 2
from itertools import *
# 14-ричные, ровно 2 разные цифры, оканч. на 0 или 3
k = 0
for x in product('0123456789abcd', repeat=5):
s = ''.join(x)
if s[0] != '0' and len(set(s)) == 2 and s[-1] in '03':
k += 1
print(k)
# 16-ричные, одна 9, чётные/нечётные не рядом
k = 0
for s in product('0123456789ABCDEF', repeat=4):
s = ''.join(s)
if s[0] != '0' and s.count('9') == 1:
for el in '02468ACE':
s = s.replace(el, 'Ч')
for el in '13579BDF':
s = s.replace(el, 'Н')
if 'НН' not in s and 'ЧЧ' not in s:
k += 1
print(k)
# Номер слова УСПЕХ
k = 0
for i in product(sorted('УСПЕХ'), repeat=5):
x = ''.join(i)
if x[-1] in 'СПХ':
k += 1
if x == 'УСПЕХ':
print(k, x) 📚 Теория
Комбинаторика. Перестановки, размещения, сочетания с повторениями и без.