def charsWithCounter(s):
    res = {}
    for c in s:
        res[c] = res.get(c, 0) + 1
    return res

def isValid(str_source, str_to_compare):
    if list(set(str_to_compare) - set(str_source)):
        return False

    dct_source = charsWithCounter(str_source)
    dct_to_compare = charsWithCounter(str_to_compare)

    for key in dct_to_compare.keys():
        if key in dct_source and dct_to_compare[key] > dct_source[key]:
            return False
    return True


dct = {
    "DENOOPRSU": ["PONDEROUS", "PONDEROUSZ", "PONDEROU S", "SPONSORED", "ONEROUS", "USURPER", "ABC", " ", "OOO", "O"],
    "CDEIORSVY": ["DISCOVERY"]
}

for k, v in dct.items():
    for s in v:
        print("'{}' --> '{}' : {}".format(k, s, str(isValid(k, s))))