def max_sublist(a_list):
    """ Kadane's Algorithm
    >>> max_sublist([-2, 1, -3, 4, -1, 2, 1, -5, 4])
    (6, 3, 6)
    >>> max_sublist([0, -1, 2,- 3, 5, 9, -5, 10])
    (19, 4, 7)

    :param a_list: The list to get the maximum sub-list for.
    :return: The sum from the sublist, the start index, and the end index. The last two are for testing.
    """
    max_ending_here = max_so_far = a_list[0]
    current_index = 0
    start_index = 0
    end_index = 0
    for num in a_list:
        max_ending_here = max(0, max_ending_here + num)
        if max_ending_here >= max_so_far:
            end_index = current_index
        if max_ending_here == 0:
            start_index = current_index + 1
        max_so_far = max(max_so_far, max_ending_here)
        current_index += 1

    return max_so_far, start_index, end_index