本帖最后由 caozhy 于 2012-08-21 16:56:27 编辑

解决方案 »

  1.   

    还没明白 
    如果生成的长度为6,能不能生成abcdef呢?aaaaaa行吗?
    是随机生成还是有规律的生成?如a1b2cd
      

  2.   

    例:  最小长度是1 ,最大长度是3 生成的应该是a
    b
    c
    d
    e
    f
    a1
    a2
    a3
    .........
    ff7
      

  3.   

    就是遍历生成字符串,X是由A或B中的元素拼接,可以仅A,也可以仅是B,也可以A和B都元素都在,注意小最长度是0  只生成最大长度的字符数
      

  4.   

    这个要是没什么限制的的话,不如把2个序列合到一个序列中 C去
    然后 var result=from a in C
                    select a; 
    //这个是取 1的时候.
    var result= from a in C
                from b in C
                select string.format("{0}{1}",a,b);
    //取2个的时候..要取多少自己加就得了
      

  5.   

    把A,B数组合并了,然后求子串就行了(只不过子串长度有规定而已,这种情况没有重复字符)。如果存在ff7,那么好像解就太多了。总体此算法不难。
      

  6.   

    a1和 1a   .... abc 和cba这样的算不算重复了?
      

  7.   

    那用我前面说的那个linq to sql 吧 没得问题了...
      

  8.   

    你知道max=14时候结果有多少种吗?  你考虑过吗? 觉得真的有777存在?
      

  9.   

    FF7... 为啥不是FFF?为啥不是777?谁规定了F比7大还是比7小?
      

  10.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace ConsoleApplication8
    {
        class Program
        {
            public void fun(int min, int max,string a)
            {
                if (min == 0)
                {
                    fun1(max, a);
                }
                else
                {
                    for (int i = min; i <= max; i++)
                        fun1(i, a);
                }
            }        private void fun1(int p,string a)
            {
                string b;
                if (p == 1)
                {
                    for (int i1 = 0; i1 < 13; i1++)
                    {
                        b = a.Substring(i1, 1);
                        Console.WriteLine("{0}", b);
                    }
                }
                if (p == 2)
                {
                    for (int i1 = 0; i1 < 13; i1++)
                    {
                        for (int i2 = 0; i2 < 13; i2++)
                        {
                            b = a.Substring(i1, 1)+a.Substring(i2,1);
                            Console.WriteLine("{0}", b);
                        }
                    }
                }
                if (p == 3)
                {
                    for (int i1 = 0; i1 < 13; i1++)
                    {
                        for (int i2 = 0; i2 < 13; i2++)
                        {
                            for (int i3 = 0; i3 < 13; i3++)
                            {
                                b = a.Substring(i1, 1) + a.Substring(i2, 1) + a.Substring(i3, 1);
                                Console.WriteLine("{0}", b);
                            }
                        }
                    }
                }
                .......
                if (p == 13)
                {
                }
                    
            }
            static void Main(string[] args)
            {
                string a = "1234567abcdef";
                Program g = new Program();
                g.fun(1, 3, a);
                Console.ReadKey();
                
            }
        }
    }
      

  11.   

     这里感谢 zhuankeshumo 先把分给了,见贴 http://topic.csdn.net/u/20120821/17/9a364a32-a3e3-439d-99f7-df7ff694d97e.html