繁体   English   中英

在不使用列表或 itertools 的情况下打印字符串的 4 个字母组合

[英]Print 4 letter combinations of a string without using lists or itertools

我们要编写一个 function,它接受一个参数字符串,然后从字符串的可能组合中输出每 4 个字母的排列。 因此,例如,即使它是一个 5 个字母的单词,您也必须返回该字符串的所有 4 个字母组合。 它也只能迭代地解决,所以没有递归。

目前我已经尝试使用嵌套 for 循环,例如

for i in word:
    for x in word:
        for z in word:
            for y in word:
                print(y)
            print(z)
        print(x)
    print(i)

然而,我遇到的问题是,首先,我不确定如何将这些输出连接成一个字符串 output ,因为我不能使用列表或任何形式的集合/字典/元组等。其次,究竟如何我会避免重复的字符串吗?

您可以只使用+运算符将两个字符串连接在一起:

a = 'str1'
b = 'str2'
c = a + b
print(c)

output:

'st1str2'

因此,您可以使用它来将 i、x、z 和 y 连接成一个字符串,并将其打印为 1 个“字”。

这个问题不是很清楚,所以我想对于word='abcd'你必须打印单词: 'abcd', 'aabc', aaab'等等。
我假设一个字母可以在不同的字母组合中出现多次(字母“a”、“b”、“c”、“d”的排列)。

在这种情况下尝试下面的代码:

def permutation(word):
    counter = 1
    for i in word:
        for x in word:
            for z in word:
                for y in word:
                    print(f"{counter} - {i + x + z + y}")
                    counter += 1

permutation("abcd")

output 包含 4 个字母的 256 个字符串,这些字母是 4 个字母的 4^4 排列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM