获取VB.NET中List(Of List(Of String))的所有排列

我有一个想法,可以使用递归函数解决我的问题,但老实说,我不知道如何开始。

起点是一个List(Of List(Of String)):

Dim Obj As New List(Of List(Of String))

我想检索所有List(Of String)对象之间的所有组合。

作为示例,假设2个包含以下值的字符串列表:

"a", "b", "c"    
"d", "e"    

这应导致:

"a d"
"a e"
"b d"
"b e"
"c d"
"c e"

最终结果也可以以List(Of String)的形式返回。

我猜想实现递归函数可能有效,但是我不知道如何实现:

Function createPermutations(ByVal Obj As List(Of List(Of String))) As List(Of String)

    Dim Result As New List(Of String)

    ...
    Result = createPermutations(...)
    ...

    Return Result

End Function