def wordifications_search(dashless_number, word_dict):
    """wordification generator that takes a number string, as well as a
    dictionary mapping strings of digits to words and yields a list of words
    that the original string can map to. Resulting strings with longer words
    being mapped are returned first. Words only containing digits will be
    merged concatenated into one string. This function will not yield the
    original input number"""
    n = len(dashless_number)
    queue = [(0, n, [])]
    while queue:
        i, j, words = queue.pop(0)
        for word in word_dict.get(dashless_number[i:j], []):
            if i > 0 and words[-1].isdigit() and word.isdigit():
                new_words = words[:-1] + [words[-1] + word]
            else:
                new_words = words + [word]
            if j == n and not ''.join(new_words).isdigit():
                yield new_words
            else:
                queue.append((j, n, new_words))
        if i < j - 1:
            queue.append((i, j - 1, words))
