def extend_index_list(lst, repeats):
    """Extend an integer index list by repeating some number of times such that the extra
    indices added are new and follow the same ordering as the existing elements.

    Parameters
    ----------
    lst : list of int
    repeats : int

    Returns
    -------
    new_idx : list of int
        Returned list has length `len(lst) * repeats`.

    Examples
    --------
    >>> extend_index_list([0, 1, 2], 2)
    [0, 1, 2, 3, 4, 5]

    >>> extend_index_list([0, 0, 1, 1], 3)
    [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

    >>> extend_index_list([4, 1, 2], 2)
    [4, 1, 2, 8, 5, 6]

    """
    new_idx = []
    for i in lst:
        if i < 0:
            raise ValueError('List elements must be positive or zero.')
        new_idx.append(i)
    for _ in range(repeats - 1):
        next_avail_idx = max(new_idx) + 1
        new_idx.extend([(next_avail_idx + i - min(lst)) for i in lst])
    return new_idx
