версия, строго использующая целочисленную арифметику (в отличие от строк):
Number = 73167176531330624919225119674426574742355349194934
max_prod, a, b = 0, None, None
Number, prev = divmod(Number, 10)
while Number:
Number, cur = divmod(Number, 10)
prod = cur * prev
if prod > max_prod:
max_prod, a, b = prod, cur, prev
# if prod == 81: # prod will never be bigger; can as well stop here.
# break
prev = cur
print(a, b, max_prod) # 9 6 54
обновите, чтобы показать, как это будет работать для вашего текущего вопроса (где вы ищете максимальный продукт из 13 смежныхцифры):
Number = int('731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861'
'560789112949495459501737958331952853208805511125406987471585238630507156932909632952274430435576689664895'
'044524452316173185640309871112172238311362229893423380308135336276614282806444486645238749303589072962904'
'915604407723907138105158593079608667017242712188399879790879227492190169972088809377665727333001053367881'
'220235421809751254540594752243525849077116705560136048395864467063244157221553975369781797784617406495514'
'929086256932197846862248283972241375657056057490261407972968652414535100474821663704844031998900088952434'
'506585412275886668811642717147992444292823086346567481391912316282458617866458359124566529476545682848912'
'883142607690042242190226710556263211111093705442175069416589604080719840385096245544436298123098787992724'
'428490918884580156166097919133875499200524063689912560717606058861164671094050775410022569831552000559357'
'2972571636269561882670428252483600823257530420752963450')
def digit_prod(i):
'''
return the product of all the decimal digits in i
'''
if i == 0:
return 0
prod = 1
while i:
i, r = divmod(i, 10)
if r == 0:
return 0
prod *= r
return prod
max_prod, res = 0, None
mod = 10**13
while Number:
i = Number % mod
prod = digit_prod(Number % mod)
if prod > max_prod:
max_prod, res = prod, i
# if prod == 9**13: # prod will never be bigger; can as well stop here.
# break
Number //= 10
print(res, max_prod) # 5576689664895 23514624000