Python 如何编写一个函数来计算5个非对称和可传递元素的可能二元关系的数量

Python 如何编写一个函数来计算5个非对称和可传递元素的可能二元关系的数量,python,python-3.x,function,math,mathematical-optimization,Python,Python 3.x,Function,Math,Mathematical Optimization,我有5个价值观: A={1,2,3,4,5} 我考虑它们的二元关系,所以我有一个矩阵 1 2 3 4 5 1 (1,1) (1,2) (1,3) (1,4) (1,5) 2 (2,1) (2,2) (2,3) (2,4) (2,5) 3 (3,1) (3,2) (3,3) (3,4) (3,5) 4 (4,1) (4,2) (4,3) (4,4) (4,5) 5 (5,1) (5,2) (5,3) (5,4) (5,5

我有5个价值观:

A={1,2,3,4,5}
我考虑它们的二元关系,所以我有一个矩阵

     1     2      3     4      5
1  (1,1) (1,2) (1,3)  (1,4)  (1,5)
2  (2,1) (2,2) (2,3)  (2,4)  (2,5)
3  (3,1) (3,2) (3,3)  (3,4)  (3,5)
4  (4,1) (4,2) (4,3)  (4,4)  (4,5)
5  (5,1) (5,2) (5,3)  (5,4)  (5,5)
当这些值是不对称的(f.e.如果有(1,2),那么不应该有(2,1),也不应该有重复的(1,1),(2,2),…)和可传递的(f.e.如果有(2,3)和(3,5),那么也应该有(2,5))时,我如何计算这些值的所有可能组合。 如何编写一个函数来计算这些关系的所有可能变化?

len(a)
将为您提供所有无对称组合的可能性,但对于重复项,您可以减去重复项的数量
len(A)

该方程可简化为:

(len(A)-1)!

我不太明白这些目标。你能举一个完整的例子,比如说,仅仅4个数字吗?
(len(A)-1)!