C++で

 % command abcd
と入力すると
 a b c d
 a b cd
 a bc d
 a bcd
 ab c d
 ab cd
 abc d
 abcd

 % command abc
ならば
 a b c
 a bc
 ab c
 abc

のように文字をグループ化して全てのパターンを表示するというものなのですが、
文字数が分かっている場合には沢山ループをまわせばできるのですが、
文字数が分からない場合はどうするかということで再帰を考えてみたのですが
実装できず、上手い方法をご存知の方がいらっしゃいましたらどうかよろしくお願いいたします