Amiguinho, você está complicando demais as coisas, o seq é algo muito mais simples que o que você está fazendo, é basicamente a sintaxe do for-printf de qualquer hello world,
Dado o laço:
for (int s;f;(increment(&s,passo)) {
printf(pattern ||"%d");
printf(separador || "\n");
}
Seu trabalho é apenas popular as variáveis