Certainly! Here is a test case generator for the problem "All Numbers Lead to 6174":

```python
import random

def generate_valid_number():
    while True:
        num = random.randint(0, 9999)
        digits = [int(d) for d in str(num).zfill(4)]
        if len(set(digits)) > 1:  # Ensure not all digits are the same
            return num

def tcgen():
    # Generate a random number of datasets
    num_datasets = random.randint(1, 10000)
    
    datasets = []
    
    for _ in range(num_datasets):
        if random.random() < 0.1:  # 10% chance to generate a number with all same digits
            digit = random.randint(0, 9)
            num = int(str(digit) * 4)  # Create a number like 1111, 2222, etc.
        else:
            num = generate_valid_number()
        
        datasets.append(str(num).zfill(4))
    
    # Add the terminating condition
    datasets.append("0000")
    
    return datasets

# Example usage:
datasets = tcgen()
for dataset in datasets:
    print(dataset)
```

### Explanation:

1. **`generate_valid_number` Function**: This function generates a four-digit integer where not all digits are the same. It keeps trying random numbers until it finds one that meets the criteria.

2. **`tcgen` Function**:
   - **Number of Datasets**: Randomly generates between 1 and 10,000 datasets.
   - **Dataset Generation**:
     - For each dataset, there's a 10% chance to generate a number where all digits are the same, ensuring cases like 1111, 2222, etc.
     - The remaining 90% of the time, it generates a valid four-digit number using the `generate_valid_number` function.
     - Each number is zero-padded to ensure it has four digits.
   - **Terminating Condition**: Adds the string "0000" at the end to indicate the end of input.

This test case generator ensures a variety of cases are covered, including edge cases where all digits are the same, and typical cases where the number eventually leads to 6174.