def mujrange(n): i = 0 while i < n: yield i i += 1 def kartezsky_soucin(l1, l2): for x in l1: for y in l2: yield (x, y) from collections import defaultdict def kgramy(text, k): stat=defaultdict(int) for i in range(len(text)-k+1): stat[text[i:i+k]] += 1 return stat