def GetTokenRange(start_token, end_token):
    """Returns a list of tokens between the two given, inclusive.

    Args:
      start_token: Start token in the range.
      end_token: End token in the range.

    Returns:
      A list of tokens, in order, from start_token to end_token (including start
      and end).  Returns none if the tokens do not describe a valid range.
    """

    token_range = []
    token = start_token

    while token:
        token_range.append(token)

        if token == end_token:
            return token_range

        token = token.next