User
n = 1938 s = str(n) r = set() for a in range(len(s)): for b in range(len(s)-a): num = int(s[a:a+b+1]) if not n % num: r.add(num) print len® - 1
Кстати, я тоже искал такую функцию для перебора всех подстрок в питоновском itertools, и там её не оказалось :(
PS. Такая ошибка тут у многих