Depth First search returns a possible path through the graph:
def recursive_dfs(graph, node):
result = []
seen = set()
def recursive_helper(node):
for neighbor in graph[node]:
if neighbor not in seen:
result.append(neighbor)
seen.add(neighbor)
recursive_helper(neighbor)
recursive_helper(node)
return result