На отрезке [100, N] (210 < N < 231) найти количество чисел, составленных из цифр а, b, с

Мой код

N = int(input("Введите правую границу отрезка N,(210 < N < 231): "))
print("Введите a, b и с: ")
a = int(input())
b = int(input())
c = int(input())
def func(v):
    x = v // 100
    y = (v % 100) // 10
    z = (v % 100) % 10
    if (x == a) or (x == b) or (x == c):
        if (y == a) or (y == b) or (y == c):
            if (z == a) or (z == b) or (z == c):
                print(x, y, z)
for i in range(100, N):
    func(i)
print(k)
if k == 0:
    print("Ошибка. Числа, состоящие из ", a," ", b, " ", c, " Отсуствуют. Попробуйте снова")

Не могу только подсчитывать эти числа.Что мне нужно сделать.


Ответы (1 шт):

Автор решения: reneget_
from itertools import permutations

N = int(input())
a, b, c = input(), input(), input()
for chance in permutations([a,b,c]):
    if 100 >= int(''.join(chance)) < N:
        print(''.join(chance))

В начале мы принимаем на вход N, а потом три числа (строковым типом данных). Для перебора всех возможных вариантов я использовал библиотеку itertools и её модуль permutations. При переборе элементов я просто проверяю вхождение получившегося числа на искомый отрезок, а затем вывожу его

→ Ссылка