b:= proc(n, t, c) option remember;
`if`(c<0, 0, `if`(n=0, `if`(c=0, 1, 0),
b(n-1, [2, 4, 6, 4, 6, 4, 6][t], c-`if`(t=5, 1, 0))+
b(n-1, [3, 5, 7, 5, 7, 5, 7][t], c+`if`(t=6, 1, 0))))
end:
a:= n-> b(n, 1, 0):
seq(a(n), n=0..40);
# Alternative:
a:= proc(n) option remember;
`if`(n<7, [1, 2, 4, 6, 11, 18, 32][n+1],
((n+3)*(307*n^2-2357*n+196) *a(n-1)
-(19280-3372*n-5181*n^2+719*n^3) *a(n-2)
+(2*(6582+268*n^3-2857*n^2+6959*n)) *a(n-3)
+(2*(-3307*n^2+1151*n+384*n^3+9052)) *a(n-4)
-(2*(1016*n^3-12133*n^2+38927*n-28304)) *a(n-5)
+(4*(27387*n+431*n^3-38420-6108*n^2)) *a(n-6)
-(4*(n-7))*(67*n-236)*(2*n-11) *a(n-7)
)/((2*(n+4))*(24*n^2-148*n-279)))
end:
seq(a(n), n=0..40);