В циклах for, выполняющих обход по полю, при создании объектов range() от длины и ширины не нужно отнимать единицу, т. к. это приводит к тому, что проверка клеток на соседство с "миной" в последней колонке и последнем столбце поля попросту не выполняется.
Исправленный вариант:
for string in range(dlina):
for stolb in range(shirina):
if pole[string][stolb] != -1:
for i in range(-1, 2):
for b in range(-1, 2):
new_string = string + i
new_stolb = stolb +b
if 0 <= new_string <= dlina - 1 \
and 0 <= new_stolb <= shirina - 1 \
and pole[new_string][new_stolb] == -1:
pole[string][stolb] += 1