当前位置: 首页 > 面试题库 >

Python itertools排列如何包括重复字符

宋昕
2023-03-14
问题内容

使用Python Itertools.permutations(),我想接收和输出具有重复字符的排列。例如,下面是我的函数及其当前输出。

def perm(n,i):
    b = 0
    while b < n:
        n= n -1
        from itertools import permutations as p
        file.write('\n'.join([''.join(item) for item in p(i,n)]))
perm(4,'0123')

输出为:

012
013
021
023
031
032
102
103
120
123
130
132
201
203
210
213
230
231
301
302
310
312
320
321.....

我将如何获得类似112或222的输出?

据我了解,组合不是特定于排列的排列。我正在寻找的是找到所有组合,然后是每个组合的每个排列。这可能吗?


问题答案:

您根本不需要排列。您想要笛卡尔积:

import itertools

def perm(n, seq):
    for p in itertools.product(seq, repeat=n):
        file.write("".join(p))
        file.write("\n")

perm(4, "0123")


 类似资料:
  • 我试图实现对存储在列表中的对象字段值的排序。 我找到了下面的解决方案来比较字符串,但是我如何比较字符串值并相应地排序? 我想先排序"Y"状态值然后"N"

  • 问题内容: 我的数据库布局需要为每个新客户创建新的架构。目前,我使用在网上找到的内部函数,并对其进行了一些修改。 该脚本的问题在于新架构中的表继续使用源架构的序列。有没有办法使用sql语句(或其他可靠的方法)为新创建的表获取序列的新副本(甚至是复制整个架构的另一种可靠的方法)? 问题答案: 因此,经过一番思考后,我继续了更新我的第一篇文章中提到的sql函数,因此现在看起来像这样: 对于所有人来说,

  • 问题内容: 我一直在尝试生成每个可能的4个字符串的列表,这些字符串可以由任何给定的字符集组成。我使用过一个函数,可以从一组字符中生成每个4个字符的组合,但是每个字符只能使用一次。我需要使用给定字符集的每种可能的组合,例如: 从此处使用CombinationGenerator类,它将返回每个唯一的4个字符的组合,例如: 但是,我希望可以使用给定的字符创建所有可能的字符串。例如: 我已经尝试过能够找到

  • 这里的结果是错误的,我不确定为什么。请帮忙

  • 我有以下Java POJO 如何实现在游戏对象列表中确定重复字段的功能? 例如,当两个游戏有相同的开始日期? 我以前使用过,但仅在根据最早日期等对对象进行排序时使用过,但它能否用于对重复项进行排序?

  • 我如何修改这个字符串: 所以它会回来的 (然后我可以把它分开)? 字符串中的数字可以不同。 我试过用。替换