code: def descendents(self):
          
          visited = set([])
          self._depth_descend(self, visited)
          try:
              visited.remove(self)
          except KeyError:
              # we weren't descendent of ourself, that's ok
              pass
  
          return list(visited)
docs: Returns a list of descendents of this node.