def solution(i): result = "" count = 0 for n in generate_prime(): result += str(n) if len(result) >= i + 5: return result[i:i+5] def generate_prime(): num = 2 primes = [] while True: is_prime = True for p in primes: if num % p == 0: is_prime = False break if is_prime: yield num primes += [num] num += 1 tests = [ (0, "23571"), (1, "35711"), (3, "71113"), ] for i, o in tests: result = solution(i) print (i, result == o, result, o)