You could use Perl. It takes very little code to do the things you want.

Basic skeleton:
Code:
  open FILEIN, "names";
  open FILEOUT, ">names2";
  while ($name = <FILEIN>) { # Read a line from FILEIN into $name
      chomp($name); # Remove the newline
      ...
  }
  close FILEOUT;
  close FILEIN;
Where ... would be:
Code:
# To append numbers:
    for ($n = 1; $n < 10000; ++$n) {
        print FILEOUT "$name$n\n";
    }

# To combine with words from another file:
    open FILEIN2, "words";
    while ($word = <FILEIN2>) {
        chomp($word);
        print FILEOUT "$name$word\n";
    }
    close FILEIN2;

# To upcase individual letters (not just the first):
    for ($i = 0; $i < length($name); ++$i) {
        $name2 = $name;
        $name2 =~ s/^(.{$i})(.)(.*)$/$1.uc($2).$3/e;
        print FILEOUT "$name2\n";
    }
# With a little more trouble you could upcase all combinations.