#!/usr/bin/python3 N = 101 transposed = [] for k in range(1, N): U = [[]] * N for n in range(1, N): U[n] = [0] * N # Invariant: b = binom(k, p) b = 1 for p in range(1, 1 + min(k, n)): b = b * (k - p + 1) // p U[n][p] = b if p == n else b * sum([U[n-p][q] for q in range(1, p+1)]) transposed.append([0]*(k-1) + [sum([U[n][p] for p in range(1, n+1)]) for n in range(k,N)]) A209669 = [] for row in zip(*transposed): A209669.extend([i for i in row if i > 0]) for i in range(len(A209669)): print(i+1, A209669[i])