Почему разный результат программы при переборе и вводе конкретного числа
Есть программа, вычисляющая сумму четных цифр числа, затем вычисляющая сумму цифр на четных позициях числа. Далее программа находит модуль разности этих чисел.
Для примера взято число 15.
Вывод в формате n, m, k, i, где n-сумма четных цифр, m-сумма цифр на четных позициях, k-модуль разности, i-исходное число. На первом скрине вывод при вводе числа 15, на втором при переборе (на числе 15).

Код программы:
n = 0
m = 0
for i in range(1, 1000):
s = str(i)
for a in range(0, len(s), 1):
x = int(s[a])
if x % 2 == 0:
n = n + x
else:
n = n + 0
for b in range(1, len(s), 2):
z = int(s[b])
m = m + z
k = abs(n - m)
print(n,m,k,i)
if k == 11:
print(i)
Почему выводятся разные значения?
