Проблема в том, что "lang" и cod[0] в цикле это один объект. Когда вы изменяете lang после метода insert список в переменной cod меняется тоже.
Более того, меняются все списки, потому что это все один и тот же lang.
Что делать. Доработать код, изменить логику. А есть нет, создавать новые списки при каждой итерации. Например, копировать текущую версию в cod:
cod.insert(i,lang.copy()) # или lang[:]
Тогда элементы в cod не будут зависеть от будущих преобразований lang.