first(n) = { my(v = vector(5)); res = vector(n); for(i = 1, n, v = nxt(v, i); ); res } nxt(v, j) = { my(i); v[1]++; for(i = 1, #v-1, if(isfizz(v[i]), v[i+1]++; if(v[i+1] == 1, print1(j", ")); , res[j] = v[i]; return(v); ) ); if(isfizz(v[#v]), v = concat(v, [1]); print1(j", "); res[j] = 1; return(v) ); res[j] = v[#v]; return(v) } isfizz(n) = { if(n % 7 == 0, return(1)); if(#setminus(Set(7), Set(digits(n))) == 0, return(1)); 0 }