def valid(num, previous): for i in range(0, len(previous)): for j in range(0, len(previous)): if previous[i] + previous[j] == num: return True return False def part1(): file = open("input.txt") preamble_length = 25 lines = [int(i) for i in file.readlines()] queue = [] for i in range(0, preamble_length): number = lines[i] queue.append(number) for i in range(preamble_length, len(lines)): number = int(lines[i]) if not valid(number, queue): break queue.pop(0) queue.append(number) print("Part 1: %d" % number) return number, lines def part2(): number, lines = part1() for size in range(2, len(lines)): for finger in range(0, len(lines) - size): subset = lines[finger:(finger + size)] if sum(subset) == number: print("Part 2: %d" % (min(subset) + max(subset))) return if __name__ == "__main__": # part1() part2()