while True:
    try:
        a = input()
        a = a.split()
        b = a[0] + a[1] #将输入的两个字符串拼接
        b = list(b)
        for i in range(len(b)):
            b[i] = ord(b[i]) #转化为ascll码
        len_b = len(b)
        b_1 = []
        b_2 = []
        if(len_b % 2 == 0): #若b包含偶数个字符
            for i in range(0,len_b,2): #i每次+2
                b_1.append(b[i]) #奇数位放到b_1
                b_2.append(b[i + 1]) #偶数位放到b_2
                
        else: #若b包含奇数个字符
            for i in range(0,len_b - 1,2): #前len(b) - 1个字符分奇偶位置分别放入到b_1,b_2
                b_1.append(b[i])
                b_2.append(b[i + 1])
            b_1.append(b[len_b - 1]) #b的最后一个字符是奇数位,放入到b_1
        b_1.sort() #奇偶位置分别按照ascll码排序
        b_2.sort()
        if(len_b % 2 == 0):  #再按照奇偶和排序后的位置放回b中
            k = 0
            for i in range(len(b_1)):
                b[k] = b_1[i]
                b[k + 1] = b_2[i]
                k = k + 2
        else:
            k = 0
            for i in range(len(b_2)):
                b[k] = b_1[i]
                b[k + 1] = b_2[i]
                k = k + 2
            b[-1] = b_1[-1]
        for i in range(len(b)): #再从ascll码变回到字符
            b[i] = chr(b[i])
        d = []
        i = 0
        for i in range(len(b)): #开始按题目要求变换
            if(b[i].isdigit()): #如果字符是数字
                c = '{:04b}'.format(int(b[i])) #'{:04b}'.format()是用来将十进制转化为四位的二进制
                c = str(c)
                c = c[::-1] #将四位二进制倒转
                c = '0b' + c #加上0b代表为二进制
                c = int(c,2) #再转化为十进制
                c = hex(c) #再转化为16进制
                c = c[2:] #去掉转化后的0x
                if(c.islower()):#如果转化后的是a~f(10-15)按照输出的要求转化为大写
                    c = c.upper()
                d.append(c) #放到新的d中
            else: #若是字母
                if(b[i].lower() <= 'f') & (b[i].lower() >= 'a'): #若是A~Z 或者 a~z 则开始转换
                    hex_b = '0x' + b[i] #0x代表十六进制
                    c = bin(int(hex_b,16)) #转化为十进制再转化为二进制
                    c = c[2:] #去掉转化后带的二进制标志0b
                    c = c[::-1]#逆序(不能带标识逆序)
                    c = '0b' + c #再加上二进制标识
                    c = hex(int(c,2)) #再转为16进制
                    c = c[2:] #去掉0x
                    if(c.islower()): #若是小写则按输出要求转化为大写
                        c = c.upper()
                    d.append(c) #放入d
                else:#若是其他的字符,则直接放入
                    d.append(b[i])
        print(''.join(d)) #按要求输出
    except:
        break

实际上,这道题就是十六进制转四位二进制再逆序再转十六进制,中间需要转为十进制来辅助变换