在不使用itertools的情况下在Python中生成字符串的所有排列

加菲尔德

我需要生成字符串中所有字符的所有可能排列(重复)。如果字符串为“ abc”,则输出应为:

aaa aab aac abc ... cbc cca ccb ccc

我不能使用itertools模块,也不想使用递归(因为这只是一个例子。我真正需要的是输出数百万个排列,而且我担心内存不足)

我可以这样:

s = 'abc'

for c1 in range(0, 3):
    for c2 in range(0, 3):
        for c3 in range(0, 3):
            print(s[c1]+s[c2]+s[c3])

基本上,我的循环数与字符串中的字符数一样多。现在,假设字符串的长度为10,例如!

有更好的方法吗?

布莱克金

解决此问题的一种简单方法是将字符串中的字符视为不寻常数字系统中的数字。字符串的长度是基数。因此,(重复)的排列'abc'对应于03**3-13'a'为底的数字0,其中digit 'b'is1'c'is 2

def permutations_with_repetition(s):
    base = len(s)
    for n in range(base**base):
        yield "".join(s[n // base**(base-d-1) % base] for d in range(base))

样品运行:

>>> for p in permutations_with_repetition("abc"):
    print(p)


aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc

如果允许使用itertools,则需要itertools.product一个repeat关键字参数:itertools.product("abc", repeat=3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在不使用itertools的情况下在Python中生成字符串的所有排列

来自分类Dev

在不使用itertools的情况下在Python中生成字符串的所有排列

来自分类Dev

如何使用IterTools在Unicode字符串中生成所有字符排列(Python)

来自分类Dev

如何使用IterTools在Unicode字符串中生成所有字符排列(Python)

来自分类Dev

如何在不使用存储过程的情况下在所有表中查找字符串

来自分类Dev

如何在不使用查询字符串的情况下在所有图像上设置质量选项?

来自分类Dev

在Ruby中生成所有可能的字符串排列

来自分类Dev

在不使用库函数的情况下在字符串中查找子字符串

来自分类Dev

在不使用库函数的情况下在字符串中查找子字符串

来自分类Dev

如何在不使用FormattedMessage的情况下在ReactIntl 2.0中检索字符串

来自分类Dev

如何在不使用字符串的情况下在Java中获得输入?

来自分类Dev

在不使用任何预定义函数的情况下在C中进行字符串匹配?

来自分类Dev

如何在不使用字符串的情况下在Java中获得输入?

来自分类Dev

如何在不使用Javascript注释的情况下在字符串中添加双斜杠?

来自分类Dev

如何在不使用python中的find()方法的情况下在另一个字符串中查找字符串

来自分类Dev

在不使用常规exp模块的情况下在字符串中的任何位置匹配字符串

来自分类Dev

如何在不使用循环的情况下简洁地找到字符串中的所有数字?

来自分类Dev

Java-如何在不使用数组的情况下显示String中的所有子字符串

来自分类Dev

如何在不使用循环的情况下简洁地找到字符串中的所有数字?

来自分类Dev

Python帮助:在给定可选字符的情况下生成所有可能的字符串

来自分类Dev

在不使用strings.xml的情况下在Android Studio中快速创建/修改字符串的快捷方式?

来自分类Dev

如何在不使用格式码的情况下在MAC 10.10中获取OS版本字符串

来自分类Dev

如何在不使用REVERSE()函数的情况下在Oracle(11g)SQL中反转字符串

来自分类Dev

如何在不使用格式码的情况下在MAC 10.10中获取OS版本字符串

来自分类Dev

如何在不使用“string()”函数的情况下在javascript中将数组转换为字符串?

来自分类Dev

如何在 C# 中不使用 RegEx 的情况下在字符串中查找 __tokens__

来自分类Dev

如何在不使用 split 和 stringtokenizer 等函数的情况下在 java 中分离字符串?

来自分类Dev

在指定的字符串中生成所有可能的间距?

来自分类Dev

如何在不使用任何内置方法的情况下在Java中获取子字符串在字符串中的位置。

Related 相关文章

  1. 1

    在不使用itertools的情况下在Python中生成字符串的所有排列

  2. 2

    在不使用itertools的情况下在Python中生成字符串的所有排列

  3. 3

    如何使用IterTools在Unicode字符串中生成所有字符排列(Python)

  4. 4

    如何使用IterTools在Unicode字符串中生成所有字符排列(Python)

  5. 5

    如何在不使用存储过程的情况下在所有表中查找字符串

  6. 6

    如何在不使用查询字符串的情况下在所有图像上设置质量选项?

  7. 7

    在Ruby中生成所有可能的字符串排列

  8. 8

    在不使用库函数的情况下在字符串中查找子字符串

  9. 9

    在不使用库函数的情况下在字符串中查找子字符串

  10. 10

    如何在不使用FormattedMessage的情况下在ReactIntl 2.0中检索字符串

  11. 11

    如何在不使用字符串的情况下在Java中获得输入?

  12. 12

    在不使用任何预定义函数的情况下在C中进行字符串匹配?

  13. 13

    如何在不使用字符串的情况下在Java中获得输入?

  14. 14

    如何在不使用Javascript注释的情况下在字符串中添加双斜杠?

  15. 15

    如何在不使用python中的find()方法的情况下在另一个字符串中查找字符串

  16. 16

    在不使用常规exp模块的情况下在字符串中的任何位置匹配字符串

  17. 17

    如何在不使用循环的情况下简洁地找到字符串中的所有数字?

  18. 18

    Java-如何在不使用数组的情况下显示String中的所有子字符串

  19. 19

    如何在不使用循环的情况下简洁地找到字符串中的所有数字?

  20. 20

    Python帮助:在给定可选字符的情况下生成所有可能的字符串

  21. 21

    在不使用strings.xml的情况下在Android Studio中快速创建/修改字符串的快捷方式?

  22. 22

    如何在不使用格式码的情况下在MAC 10.10中获取OS版本字符串

  23. 23

    如何在不使用REVERSE()函数的情况下在Oracle(11g)SQL中反转字符串

  24. 24

    如何在不使用格式码的情况下在MAC 10.10中获取OS版本字符串

  25. 25

    如何在不使用“string()”函数的情况下在javascript中将数组转换为字符串?

  26. 26

    如何在 C# 中不使用 RegEx 的情况下在字符串中查找 __tokens__

  27. 27

    如何在不使用 split 和 stringtokenizer 等函数的情况下在 java 中分离字符串?

  28. 28

    在指定的字符串中生成所有可能的间距?

  29. 29

    如何在不使用任何内置方法的情况下在Java中获取子字符串在字符串中的位置。

热门标签

归档