def solution(s): for i in range(len(s)): count = i + 1 if len(s) % count != 0: continue is_equal = True piece = s[:count] for j in range(len(s) / count): if piece != s[j*count:(j+1)*count]: is_equal = False break if is_equal: return len(s)/count tests = [ ("abcabcabcabc", 4), ("abccbaabccba", 2), ] for i, o in tests: result = solution(i) print (i, result == o, result, o)