Python怎么实现在字符串中选择部分字符进行全排列

在26个大写英文字母中,取N个字母进行排列,输出所有排列的可能,N由用户给定。

例如,N若等于3,则会有26×25×24中可能性,程序输出需要罗列每一种可能性ABC,XYZ,ABZ,等等。

承邀,楼主的意思应该是全组合,按照递归思想可建立如下程序:

def alphabet(iterable, r):
    pool = list(map(str, iterable))
    n = len(pool)
    if r > n:
        return
    indices = list(range(r))
    yield list(pool[i] for i in indices)
    while True:
        for i in reversed(range(r)):
            if indices[i] != i + n - r:
                break
        else:
            return
        indices[i] += 1
        for j in range(i + 1, r):
            indices[j] = indices[j - 1] + 1
        yield list(pool[i] for i in indices)



alphabet_list=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
print(list(alphabet(alphabet_list, 3)))    #N可以自己设置,这里输入3

结果如下:

img

望采纳!

import itertools as it
import string

res = it.permutations(string.ascii_uppercase, 3)
for i in res:
    print(''.join(i))


import itertools as it
import string

number=int(input('请输入要展示的位数:'))
res = it.permutations(string.ascii_uppercase, number)
for i in res:
    print(''.join(i))
 
 

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632