from collections import defaultdict import string from itertools import combinations data = open("input.txt").read().strip().split("\n") d = defaultdict(list) t = set(string.ascii_letters+string.digits) for i, l in enumerate(data): for j, c in enumerate(l): if c in t: d[c].append((i, j)) width = len(data[0]) height = len(data) def bound(x, width, height): i, j = x return 0<=i