Как набирать наборы для заданной строки [дубликата]

Возможный дубликат:

Как я могу получить все возможные комбинации подмножеств?

Я пытаюсь напечатать наборы для данной строки, например, "123" выдаст {1} {2} {3} {13} {23} {12} {123} {}, но мой код дает мне 1 1 Пожалуйста, может кто-нибудь сказать мне, почему и, пожалуйста, помогите мне исправить это Спасибо всем}

using System;
using System.Collections.Generic;
using System.Linq; 
using System.Text;

namespace TestAAD
{
class Program
{
    static List sets = new List();
    static int len = 0;

    private static void Generte_Sets(string str, int i)
    {

        sets.Add(str[i].ToString());

        if (i < len)
            Generte_Sets(str, i + 1);
        else
        {
            for (int j = 0; j < sets.Count; j++)
                Console.Write(sets[j]);
            Console.WriteLine();
        }

        sets.Remove(str[i].ToString());  
        if (i < len)
            Generte_Sets(str, i + 1);
        else
        {
            for (int j = 0; j < sets.Count; j++)
                Console.Write(sets[j]);
            Console.WriteLine();
        }
    }

    static void Main(string[] args)
    {
        string set = "123";

        Generte_Sets(set, 0);
        len = set.Length;
        for (int i = 0; i < sets.Count; i++)
        {
            Console.WriteLine(sets[i]);
        }
    }
}

Пожалуйста, мне нужна помощь, чтобы набрать наборы, мне нужна быстрая помощь, спасибо. Все

Ответы на вопрос(1)

Ваш ответ на вопрос