Problem:
 Score : 300 points    Problem Statement You are given an integer N . Among the integers between 1 and N (inclusive), how many Shichi-Go-San numbers (literally "Seven-Five-Three numbers") are there?  Here, a Shichi-Go-San number is a positive integer that satisfies the following condition:   When the number is written in base ten, each of the digits 7 , 5 and 3 appears at least once, and the other digits never appear.       Constraints  1 \leq N < 10^9  N is an integer.         Input Input is given from Standard Input in the following format:  N       Output Print the number of the Shichi-Go-San numbers between 1 and N (inclusive).        Sample Input 1 575      Sample Output 1 4  There are four Shichi-Go-San numbers not greater than 575 : 357, 375, 537 and 573 .       Sample Input 2 3600      Sample Output 2 13  There are 13 Shichi-Go-San numbers not greater than 3600 : the above four numbers, 735, 753, 3357, 3375, 3537, 3557, 3573, 3575 and 3577 .       Sample Input 3 999999999      Sample Output 3 26484

Solution (Python):
import sys
def input(): return sys.stdin.readline().strip()
def mapint(): return map(int, input().split())
sys.setrecursionlimit(10**9)

N = int(input())
idx = 0

ans = 0
def dfs(idx, st):
    global ans
    if idx==10:
        return
    if int(st)>N:
        return
    elif len(set(st))>=3:
        ans += 1
    for nx in ('3', '5', '7'):
        dfs(idx+1, st+nx)

for nx in ('3', '5', '7'):
    dfs(1, nx)
print(ans)

Solution (Python):
from itertools import product
n = int(input())
m = len(str(n))
ans = 0
for i in range(3,m+1):
    l = list(product('753',repeat=i))
    for _ in l:
        x = ''.join(list(_))
        if '7' in x and '5' in x and '3' in x:
            if n >= int(x):
                ans += 1
print(ans)

Solution (Python):
import itertools
N = str(input())
Keta = len(N)
N_List = ["3","5","7"]



Ans = 0
for i in range(3,Keta):
    Ans += 3**i
    Ans -= (2**i*3) -3

N = int(N)



if Keta >= 3:
    for Moji in itertools.product(N_List, repeat=Keta):
        Moji_Kazu = len(set(Moji))
        Str_Number = int("".join(Moji))
        if (Str_Number <= N) & (Moji_Kazu == 3):
            Ans += 1
    
print(Ans)

Solution (Python):
import itertools
N = int(input())
cnt = 0
for i in range(3, len(str(N))+1):
    for j in list(itertools.product('357', repeat = i)):
        if ('3' in j) & ('5' in j) & ('7' in j):
            if int(''.join(j)) <= N:
                cnt += 1
            else:
                break
print(cnt)