def code_from_10_length_numbers(numbers: list[int], start_index: int,
                                n_loop: int) -> str:
    """
    From a 10-length list of number, a starting index and a limit of loop,
    return a code.

    The start index is used to get a value. This value is add to the code, then
    used as an index to replace start index. N time.

    Usage:
        >>> code_from_10_length_numbers([1, 8, 9, 7, 9, 8, 5, 6, 9, 2], 6, 1)
        '5'
        >>> code_from_10_length_numbers([1, 8, 9, 7, 9, 8, 5, 6, 9, 2], 5, 1)
        '8'
        >>> code_from_10_length_numbers([1, 8, 9, 7, 9, 8, 5, 6, 9, 2], 8, 1)
        '9'
        >>> code_from_10_length_numbers([1, 8, 9, 7, 9, 8, 5, 6, 9, 2], 6, 2)
        '58'
        >>> code_from_10_length_numbers([1, 8, 9, 7, 9, 8, 5, 6, 9, 2], 6, 3)
        '589'
        >>> code_from_10_length_numbers([1, 8, 9, 7, 9, 8, 5, 6, 9, 2], 6, 10)
        '5892929292'
        >>> code_from_10_length_numbers([2, 4, 1, 8, 6, 7, 5, 3, 0, 9], 1, 14)
        '46573802146573'
    """
    current_index = start_index
    code = list()
    for _ in range(n_loop):
        current_index = numbers[current_index]
        code.append(str(current_index))
    return ''.join(code)