看了半天没看出来,参照了一下别人的思路

while True:
    try:
        stri = input().split()
        num = int(stri[-1])  # 目标输出的第num个
        base = stri[-2]  # 基础单词
        dba = [i for i in stri if stri.index(i) in range(1, len(stri)-2) and len(i) == len(base) and i != base]  # 取出单词字典,过滤符合条件的单词,长度,相等
        lis = []
        for i in dba:
            if sorted(i) == sorted(base):  # 本题唯一考点
                lis.append(i)
        lis.sort()  # 排序
        print(len(lis))
        if num - 1 not in range(len(lis)):  # 过滤不符合的num
            pass
        else:
            print(lis[num-1])  # 因为是下标,要-1
    except:
        break