Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算4个字符长的排列,每个结果上有2个字符_Python_Permutation - Fatal编程技术网

Python 计算4个字符长的排列,每个结果上有2个字符

Python 计算4个字符长的排列,每个结果上有2个字符,python,permutation,Python,Permutation,我怎么能打印一个排列,而排列中的值只打印一系列两个字符的字母(请原谅我的英语) 示例:ADDD、DADD、BDDD、CCDD、CDDD等(每个排列仅2个字符)对于排列中的i: 如果len((设置(列表(i))==2: 印刷品(一) 假设我是ABAA 列表(i)将导致[A、B、A、A] set()将导致{A,B} 然后,对于perm中的i,其中的len()将是2: 如果len((设置(列表(i))==2: 印刷品(一) 假设我是ABAA 列表(i)将导致[A、B、A、A] set()将导致{A

我怎么能打印一个排列,而排列中的值只打印一系列两个字符的字母(请原谅我的英语)

示例:ADDD、DADD、BDDD、CCDD、CDDD等(每个排列仅2个字符)

对于排列中的i:
如果len((设置(列表(i))==2:
印刷品(一)
假设我是ABAA
列表(i)将导致[A、B、A、A]
set()将导致{A,B}
然后,对于perm中的i,其中的len()将是2

:
如果len((设置(列表(i))==2:
印刷品(一)
假设我是ABAA
列表(i)将导致[A、B、A、A]
set()将导致{A,B}

然后len()的值是2,我想你必须生成所有的组合,然后过滤到你想要的条件

保持这一点不变:

from itertools import permutations
perm=permutations(['A','B','C','C','D','D','D','D'],4)
for i in perm:
  print (i)
但是,通过使用列表理解,只保留满足条件的元素。将元素转换为集合,并计算集合的长度。类似('a','B','B')的元素将转换为{'a','B'}

from itertools import permutations
perm = permutations(['A', 'B', 'C', 'C', 'D', 'D', 'D', 'D'], 4)

我认为,为此,您必须生成所有组合,并过滤到您想要的条件

保持这一点不变:

from itertools import permutations
perm=permutations(['A','B','C','C','D','D','D','D'],4)
for i in perm:
  print (i)
但是,通过使用列表理解,只保留满足条件的元素。将元素转换为集合,并计算集合的长度。类似('a','B','B')的元素将转换为{'a','B'}

from itertools import permutations
perm = permutations(['A', 'B', 'C', 'C', 'D', 'D', 'D', 'D'], 4)

谢谢,这非常有效。但是它打印的数量是528个组合。现在,我怎么能把它减少到18个呢?如果你只想要18个,那么就拿前18个。或者你在问题中没有提到其他约束条件吗?约束条件是,如果一个组合已经存在,那么如果有任何类似的组合,它就不会出现不能打印/计数(不允许重复)谢谢,这非常有效。但是它打印的数量是528个组合。现在,我怎么能把它减少到18个呢?如果你只想要18个,那么就拿前18个。或者你在问题中没有提到其他约束条件吗?约束条件是,如果一个组合已经存在,那么如果有任何类似的组合,它就不会出现不能打印/计数(不允许重复)