code: def descendants(state, obj, level=0):
      
      return sum([
          [(child, level)] + descendants(state, child, level + 1)
          for child in state[obj].children
      ], [])
docs: Returns a flattened list tuples of DFS traversal of subtree
      from object that contains descendant object and it's depth