Как "отловить" место элемента при сортировке вставкой

Есть такой код, который сортирует вставкой последовательность из input.txt, выводит в output.txt отсортированную последовательность, но еще надо отловить как-то места, куда они становятся после сортировки

Вот формулировка задания:
В первой строке выходного файла выведите n чисел. При этом i-ое число равно индексу, на который, в момент обработки его сортировкой вставками, был перемещен i-ый элемент исходного массива. Индексы нумеруются, начиная с единицы. Между любыми двумя числами должен стоять ровно один пробел.

Во второй строке выходного файла выведите отсортированный массив. Между любыми двумя числами должен стоять ровно один пробел.

Пример:
input.txt

10   
1 8 4 2 3 7 5 6 9 0  

output.txt

1 2 2 2 3 5 5 6 9 1
0 1 2 3 4 5 6 7 8 9  

код

with open('input.txt', 'r', encoding='utf-8') as f:
    n = int(f.readline())
    arr = list(map(int, f.read().split()))
    def insertion(array):
        for k in range(0,n):
            if array[k]<10**9:
                for i in range(1, n):
                    j = i - 1
                    key = array[i]
                    while array[j] > key and j >= 0:
                            array[j + 1] = arr[j]
                            j = j-1
                    array[j + 1] = key
    if not (n < 1 and n > 1000):
        insertion(arr)
with open('output.txt', 'w', encoding='utf-8') as f:
        f.write(" ".join(map(str, arr)))`

Ответы (1 шт):

Автор решения: MBo

Вот в этой строчке array[j + 1] = key i-й элемент ставится на место с индексом j + 1.

Это число, увеличенное ещё на 1 (нумеруются, начиная с единицы), и выводите.

Без файлов:

n = 10
inp = '1 8 4 2 3 7 5 6 9 0'
arr = list(map(int, inp.split()))

def insertion(array):
    indexlist = []
    for i in range(n):
        j = i - 1
        key = array[i]
        while j >= 0 and array[j] > key:
            array[j + 1] = arr[j]
            j -= 1
        array[j + 1] = key
        indexlist.append(j+2)
    return indexlist

il = insertion(arr)
print(" ".join(map(str, il)))
print(" ".join(map(str, arr)))

1 2 2 2 3 5 5 6 9 1
0 1 2 3 4 5 6 7 8 9

P.S. а это зачем вообще ?

for k in range(0,n):
    if array[k]<10**9:
→ Ссылка