title: Does this python code employs Depth First Search (DFS) for finding all paths?
body: <p>This code is given in <a href="http://www.python.org/doc/essays/graphs/" rel="nofollow">python official essays on graph theory</a>. Here's the code:</p>
  
  <pre><code>def find_all_paths(graph, start, end, path=[]):
          path = path + [start]
          if start == end:
              return [path]
          if not graph.has_key(start):
              return []
          paths = []
          for node in graph[start]:
              if node not in path:
                  newpaths = find_all_paths(graph, node, end, path)
                  for newpath in newpaths:
                      paths.append(newpath)
          return paths
  </code></pre>
  
  <p>I am not adept at python as I haven't yet had enough of practicing and reading in it. Can you please explain the code by relating this to the child-sibling concept in DFS diagram? Thanks.</p>