Python关于字符串的组合数

给一个长度为15的字符串x='onmlkjihgfedcba‘
问现在如何改变x的排列顺序使得其经过冒泡排序交换次数为100?
列出所有排列组合和排列种数
求解!好难啊


b = []
#字符串所有排列组合(递归法)    
def swap(str,i,j): #交换字符数组下标
    temp=str[i]
    str[i]=str[j]
    str[j]=temp
def permutation(str,start): #字符全排列
    n=len(str)
    if str==None or start<0:
        return 0
    if start==n-1: #完成全排列后输出
        print(''.join(str))
    else:
        i=start
        while i<n: 
            swap(str,start,i) #交换start与i所在位置的字符
            permutation(str,start+1) #固定第一个字符,对剩余字符进行全排列
            swap(str,start,i) #恢复初始顺序
            i+=1
 
y = "onmlkjihgfedcba"
a = list(y)
permutation(a,0)
print(b)
'''此处仍然差一个将permutation函数输出值存入b的代码,这个就靠你了,我不能全部都帮你搞定'''
for x in b:
    s = 0
    for i in range(len(x) - 1, 0, -1):
        for j in range(i):
            if x[j] > x[j+1]:
                x[j], x[j+1] = x[j+1], x[j]
                s += 1
    if s==100:
        print(p)
 

这是什么需求,

x='onmlkjihgfedcba'
x1 = list(x)

s = 0
d = {}
for i in range(len(x1) - 1, 0, -1):
    for j in range(i):
        if x1[j] > x1[j+1]:
            x1[j], x1[j+1] = x1[j+1], x1[j]
            s += 1
            d[s] = x1.copy()
print(d[s - 100])


创建一个list,包括这个字符串的每一个字符
然后就遍历+循环+遍历,就比如 o + n + m。。。。 然后下一次循环就是 o + m + nlkji 。。。
然后就冒泡排序一下,这个csdn上面随便搜,然后你只需要在里面加一个计次就好
计次如果是100,就可以算一个排列组合,然后额外再有一个计次,计算排列种数