def descendants(node):
    """
    Recursively finds all the nodes that are descendants of node and returns
    them as a list.  The node itself is included.
    """
    node_list = [node]
    if node.children is not None:
        for child in node.children:
            node_list += descendants(child)
    return node_list