Из всех шестизначных чисел вывести те, чьи суммы левой и правой частей равны.
for x in range(100000, 999999):
x = str(x)
left = [int(x[0]), int(x[1]), int(x[2])]
right = [int(x[3]), int(x[4]), int(x[5])]
if sum(left) == sum(right):
print(x)
for x in xrange(100, 1000):
left = x // 100 % 10 + x // 10 % 10 + x % 10
for y in xrange(0, 1000):
right = y // 100 % 10 + y // 10 % 10 + y % 10
if left == right:
print '%03d%03d' % (x, y)
>>> import operator
>>>
>>> def split3(x):
... return (x // 100, x // 10 % 10, x % 10)
...
>>> def split6(x):
... return (x // 1000, x % 1000)
...
>>> pred = lambda x: operator.eq(*map(sum, map(split3, split6(x))))
>>>
>>> out = list(filter(pred, range(100000, 1000000)))
>>> out[:10]
[100001, 100010, 100100, 101002, 101011, 101020, 101101, 101110, 101200, 102003]
>>>