'''
Note that this code is broken, e.g., it won't work when 
blocks = [(, ), (,)] and the word is , where the answer
should be True, but the code returns False.
'''
blocks = [(, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, ),
          (, )]


def can_make_word(word, block_collection=blocks):
    
    if not word:
        return False

    blocks_remaining = block_collection[:]
    for char in word.upper():
        for block in blocks_remaining:
            if char in block:
                blocks_remaining.remove(block)
                break
        else:
            return False
    return True


if __name__ == :
    import doctest
    doctest.testmod()
    print(.join(% (w, can_make_word(w)) for w in
                    [, , , , , 
                     , , ]))