graph = {
    '5':['3','7'],
    '3':['2','4'],
    '7':['8'],
    '2':[],
    '4':['8'],
    '8':[]
}

def dfs_limit(node,graph,visited,limit,current_depth):
    if current_depth > limit:
        return False

    if node not in visited:
        print(node, end=" ")
        visited.append(node)


    if current_depth == limit:
        return False

    for neighbour in graph[node]:
        if neighbour not in visited:
            dfs_limit(neighbour,graph,visited,limit,current_depth+1)
    return True

def iddfs(start_node,graph,max_depth):
    print("This is iddfs")
    for depth in range(max_depth+1):
        print(f"\ncurrent depth: {depth}")
        visited_iddfs = []
        dfs_limit(start_node,graph,visited_iddfs,depth,0)

iddfs('5', graph, max_depth=3)