def _find_path(start, end, path=tuple()):
    """Return the path from start to end.

    If no path exists, return None.
    """
    path = path + (start, )
    if start is end:
        return path
    else:
        ret = None
        if start.low is not None:
            ret = _find_path(start.low, end, path)
        if ret is None and start.high is not None:
            ret = _find_path(start.high, end, path)
        return ret