python中从数据对创建集群的算法

python中从数据对创建集群的算法,python,algorithm,Python,Algorithm,我正在寻找一种智能算法或pythonic方法来从成对的数据创建集群 输入数据的结构如下所示: [ (productA,ProductB), (productB,ProductC), (productC,ProductD), (productA,ProductD), (productD,ProductB), (productC,ProductA), (productE,ProductF), (productF,ProductG), (productG,ProductH), (

我正在寻找一种智能算法或pythonic方法来从成对的数据创建集群

输入数据的结构如下所示:

[
 (productA,ProductB),
 (productB,ProductC),
 (productC,ProductD),
 (productA,ProductD),
 (productD,ProductB),
 (productC,ProductA),

 (productE,ProductF),
 (productF,ProductG),
 (productG,ProductH),
 (productG,ProductE),
]
并且它应该聚集到:

[
(productA,productB,productC,productD),
(productE,productF,productG,productH)
]
如何做到这一点?(两个集群内的产品顺序无关紧要)

任何想法都非常感谢

使用,您可以构建一个图表并找到:

屈服

['productG', 'productF', 'productE', 'productH']
['productD', 'productC', 'productB', 'productA']

你要找的是:快速联合算法

集群是通过某种(定向)对链接的所有产品的传递闭包?关系是对称的吗?QU要求关系是传递的、自反的和对称的。示例没有显示关系是否对称。请立即尝试此操作。有两点需要注意:1。我爱你,所以。。。总是能解决任何问题,2。我喜欢蟒蛇。。。
['productG', 'productF', 'productE', 'productH']
['productD', 'productC', 'productB', 'productA']