C - 755

個人的にはすきな問題。 https://atcoder.jp/contests/abc114/tasks/abc114_c

dfsで753が現れる数を列挙して、そのなかから753が一回づつ現れるものを足していく。

def solve():

    N = int(input())

    # 文字列 s で始まる七五三数の個数
    def dfs(s):
        if int(s) > N:
            return 0

        ret = 0
        # s 自体が七五三数なら +1
        if all(s.count(c) > 0 for c in '753'):
            ret = 1
        else:
            ret = 0

        for c in '753':
            ret += dfs(s + c)
        return ret

    print(dfs('0'))


if __name__ == "__main__":  
    solve()

all()関数は、なかに含まれるすべてがTRUEになるとTRUEを返す便利な関数。