s2 := TStringList.Create;
  // s2.Duplicates := dupIgnore;
  // s2.Sorted := True;
  mstr := '';
  for i := 0 to s1.Count - 1 do
  mstr := mstr + chr(ord('A') + StrToInt(s1.Strings[i]));
  // s2.Add(mstr);
  // i:=0;
  timestart := GetTickcount;
  flen := length(mstr);
  for L1 := 1 to flen - 6 do
  for L2 := L1 + 1 to flen - 5 do
  for L3 := L2 + 1 to flen - 4 do
  for L4 := L3 + 1 to flen - 3 do
  for L5 := L4 + 1 to flen - 2 do
  for L6 := L5 + 1 to flen - 1 do
  for L7 := L6 + 1 to flen do
  s2.Add(mstr[L1] + mstr[L2] + mstr[L3] + mstr[L4] + mstr[L5] +
  mstr[L6] + mstr[L7]);
  timestart := GetTickcount - timestart;
我是个新手,现在,我要实现两组号码合成7个一组的号码组合,例如,第一组号码可能是1个、2个、3个、4个、5个、6个,就是6个以内不固定的个数的号码,第二组号码是30个以内不固定个数的号码,我要实现以下功能:当第一组号码是1个时,7个一组号码中剩下的6个号码从第二组中选取,并保证使第一组的号码一定出现在7个一组的组合中,举例说明:第一组号码为1、2,第二组号码为3、4、5、6、7、8、9、10,用着两组号码生成7个一组的全部组合,7个号码中,除去第一组2个号码,剩余5个号码在第二组8个号码中选取,即8选5,合成组合,并保证第一组号码1、2必定出现在7个一组的蛤蟆组合中,如何实现?请指教。如何在以上代码基础上更改实现这个功能。