一组字符串三个一组进行组合,使组合结果中的子字符与其他组合结果至少有两个字符不一样

例如有以下字符串
a b c d e f g h i j
组合
a b c
a d e
a f g
a h i
......
三个字符串一组相组的字符串分别为Z1 Z2 Z3 Z4 ....等等 要求 Z1 Z2 Z3 Z4 它们自身包包含的字符至少要有两个是不一样的

比如:
Z1 = a b c , Z2=a d e ,Z3= a f g , Z4=a h i ..
这几个组合中都有两个不一样的字符
Z1 中 abc3个字符中 后面的两个字符 bc 和 Z2,Z3,Z4 后面的两个都是不一样的

想达到这个组合效果,而且把所有这种组合情况全部组合出来

C#语言实现

 string[] m = "a b c d e f g h i j".Split(' ');
for (i = 0; i < m.Count() - 2; i++)
{
for (int j = i + 1; j < m.Count() - 1; j += 2)
{
Console.WriteLine(m[i] + " " + m[j] + " " + m[j + 1]);
}
}