h:= proc(l) local n; n:=nops(l); add(i, i=l)! /mul(mul(1+l[i]-j
+add(`if`(l[k]>=j, 1, 0), k=i+1..n), j=1..l[i]), i=1..n)
end:
g:= proc(n, i, l) option remember;
`if`(n=0, h(l), `if`(i=1, h([l[], 1$n]), `if`(i<1, 0,
g(n, i-1, l) +`if`(i>n, 0, g(n-i, i, [l[], i])))))
end:
a:= n-> g(n, 6, []):
# Alternative:
a:= proc(n) option remember;
`if`(n<4, [1, 1, 2, 4][n+1], ((20*n^2+184*n+336)*a(n-1)
+4*(n-1)*(10*n^2+58*n+33)*a(n-2) -144*(n-1)*(n-2)*a(n-3)
-144*(n-1)*(n-2)*(n-3)*a(n-4))/ ((n+5)*(n+8)*(n+9)))
end: