python 中的多节点图到单节点图

Multiple Nodes graph to single node graph in python

我有一个有向无环图,像这样:

[a, b, c] --> [p, q] --> [p, a, c] --> [x, y, z]

在这里,每个字母表都是一个节点。 从上图中,我想要所有具有单个节点的图的列表。 例如 一张图可以是:a --> p --> a --> y 另一个可以是:b --> p --> p --> z

我可以在主图上进行深度优先搜索 (DFS) 来遍历它,但我不确定如何进行多次 DFS 来提取每个具有单个字符的图

如果你有一个节点集列表,你可以这样做 -

from itertools import product
s =[[1, 2], [3, 4, 5], [6, 7]]
list(product(*s))

输出-

[(1, 3, 6), (1, 3, 7), (1, 4, 6), (1, 4, 7), (1, 5, 6), (1, 5, 7), (2, 3, 6), (2, 3, 7), (2, 4, 6), (2, 4, 7), (2, 5, 6), (2, 5, 7)]