проблема в том, что каждый массив в вашем массиве является одним и тем же массивом в памяти. вам нужен новый массив каждый раз. [[0]] * 6, например, создаст 6 одинаковых массивов в массиве, редактирование одного из них обновит другие.
, например
>>> x=[1]
>>> y=x
>>> x.append(3)
>>> x
[1, 3]
>>> y
[1, 3]
>>> z=[x]*3
>>> x.append(6)
>>> z
[[1, 3, 4, 6], [1, 3, 4, 6], [1, 3, 4, 6]]
Вот исправление, просто отредактировав bc для n + 1 различных массивов:
n=4
bc = [[0]*(n+1) for i in range(n+1)]
for i in range(n+1):
bc[i][i] = 1
print (bc)
[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]]