これだけの説明だと、「あいうえおかき」まで作る部分がないというか足りなくないデス?これは、>>//全部連結したものを最後に付加する。「あうかき」等がカバーできてなさそうです。ありマスが、「いあ」とか「うあ」とか逆はなくてもいいのかしら・・・。最初の例の提示では、逆は無くてもよさそうですね。【追記】コードにコメントいれマス。このビット判定も数に限界ありマスね。BitArrayクラスを...と思ったらシフト演算子が無い...。継承してoperatorを...と思ったら継承が禁止されてた...。シフト用の関数作って引数にBitArrayを放り込むか...とも思ったんですが、今回の使い方くらいなら自分でビット管理用クラスを作っても良いかもしれないですね。あれ?シフト演算使わなくてもいいのか?インクリメント/デクリメントでのビット変化が表現できればいいだけなんだ。あれ?シフト演算使わなくてもいいのか?インクリメント/デクリメントでのビット変化が表現できればいいだけなんだ。思いつくままに書いたものデスから、このコードそのままだと制限ありマス、という意味で追記しました。スレ主サマからのアクションがまだなので、伝わったかどうか不安なところもありマスが表現方法は様々あるうちの一つとして見てもらえたらなと思いました。(空気を読まずに?)LINQで。さんのアルゴリズムで書いていけばよいと思います。あいうちなみに、&gt;【追記】コードにコメントいれマス。このビット判定も数に限界ありマスね。この点は問題ないと思います。結果を格納する文字列のサイズが4GBを遥かに超えてしまうためです。あいうえ」を返します。Function以上です。要するにやりたい処理のパターン化が出来れば良いわけなので既に御自分であげれられている処理例を見本に処理のパターン化を試みれば良いわけですね。パターン化が出来れば、組み合わせる物がどんな物でも基本的には対応できるはずなのでそこは応用になります。さんのが一番整理されていてわかりやすいような気がします。あとはその処理パターンにどうやって載せていくかだけですし。直接の答えを求めるはどうかなぁ。提示されたものを見てロジックパターンの括り出しができるならそれも有りでしょうけれど、あんまり身にならないような気もします。勉強でやっているならみんなのアドバイスを元にしてロジックのパターン化をやって見たほうが良いと思いますよ。さんの■No10992の書き込みで解決ではと思ったので書き込みしてませんでしたが、まだ残っているので書き込みしてみるテスト。一つ一つ作る三つの場合、四つの場合などのロジックしか思いつきませんその三つの場合、四つの場合の思いついたコードを掲載してていただければ、より早い段階でその考え方の方向で一般化したコードまたは考え方を誰かが掲載してくれたのではないでしょうか。あと、質問内容がわかるように適切なタイトルつけてください。編集(投稿者)再帰パターンの実装例。見づらい!多重Listにしなければもう少し判りやすかっただろうけど、汎用性も希望にあわせてみました。>【追記】コードにコメントいれマス。このビット判定も数に限界ありマスね。この点は問題ないと思います。結果を格納する文字列のサイズが4GBを遥かに超えてしまうためです。ArgumentException("要素の数は32個以内にしてください")問題ないかどうかを決めるのは私ではないので、33個以上の要素数を処理するにはそれなりにコードを考える必要がありマスよ、という意味で「限界」と書いたつもりでした。いくつでもって・・・書いてるんデスもん。