------
## 最终结论
```python
from itertools import permutations

def is_solvable(words, result):
    # Collect all unique characters
    unique_chars = set(''.join(words) + result)
    
    # If there are more than 10 unique characters, it's not solvable
    if len(unique_chars) > 10:
        return False
    
    # Create a mapping from characters to digits
    char_list = list(unique_chars)
    
    # Iterate through all possible digit assignments
    for perm in permutations(range(10), len(char_list)):
        char_to_digit = dict(zip(char_list, perm))
        
        # Check for leading zeros
        if any(char_to_digit[word[0]] == 0 for word in words) or char_to_digit[result[0]] == 0:
            continue
        
        # Calculate the sum of the words and the result
        total = sum(int(''.join(str(char_to_digit[char]) for char in word)) for word in words)
        result_value = int(''.join(str(char_to_digit[char]) for char in result))
        
        # Check if the equation holds
        if total == result_value:
            return True
            
    return False

# Example usage:
print(is_solvable(["SEND", "MORE"], "MONEY"))  # Output: True
print(is_solvable(["SIX", "SEVEN", "SEVEN"], "TWENTY"))  # Output: True
print(is_solvable(["THIS", "IS", "TOO"], "FUNNY"))  # Output: True
print(is_solvable(["LEET", "CODE"], "POINT"))  # Output: False
```