一个更简单的做法:

while True:
    try:
        s = input().split(" ")
        n = int(s[0])
        k = int(s[-1])
        sub_str = s[-2]
        sum_str=[]
        for item in s[1:-2]:
            if item != sub_str and sorted(item)==sorted(sub_str):
                sum_str.append(item)               
        print(len(sum_str))
        if k<= len(sum_str):
            print(sorted(sum_str)[k-1])
    except:
        break

利用字典来进行判断是否元素和个数相等,判断两个字典是否相等,可以直接: dic1==dic2

while True:
    try:
        s = input().split(" ")
        n = int(s[0])
        k = int(s[-1])
        sub_str = s[-2]
        sum_str=[]
        dic_sub={}
        for t in set(sub_str):
            dic_sub[t]= sub_str.count(t)   
        for item in s[1:-2]:
            if item != sub_str:
                dic_new = {}
                for t in set(item):
                    dic_new[t]=item.count(t)
                if dic_new == dic_sub:
                    sum_str.append(item)               
        print(len(sum_str))
        if k<= len(sum_str):
            print(sorted(sum_str)[k-1])
    except:
        break

python数组删除元素的方法:

  1. DEL 删除法(index序列) del listname[index]

del listname[start:end] 2. pop(index),如果没有索引值,默认删除最后一个元素

  1. remove(object) 删除搜索到的第一个指定元素,如果列表中不包含这个元素,会返回错误