"Hello world" that creates a different "Hello world" program

Mathematica, 214 - 50% = 107 bytes

(a = Characters[StringJoin["helloworl", "d"]]; b = Apply[StringJoin, Tuples[Transpose[{a, ToUpperCase[a]}]], {1}]; StringReplacePart[ToString[#0, InputForm], b[[FirstPosition[b, "helloworld"] + 1]], {180, 189}]) & 

I decided to optimize for string count here. This runs for 1024 programs without stopping, going through every combination of uppercase and lowercase letters. The execution can be seen here.


Pyth, 17 bytes

A different Pyth solution:

"r\"helloworld\"1

Output:

r"helloworld"1

Second output:

HELLOWORLD

Vitsy, 33 - 33*.05*(11-2) = 18.15 Bytes

Heh! Beat that! You probably will. :c

First output:

'0DV\{25^-V\}}1+{rd3*Z;helloworld
'                                 Start capturing as a string
 0DV                              Push 0 to the stack and set it as the final variable.
    \                             Repeat the next item this many times. (1, 2, 3... on outputs.)
     {                            Rotate the stack leftwards.
      25^                         Push 32 to the stack.
         -                        Subtract the top item by it - this will make lowercase uppercase.
          V\                      Do the next item final variable times.
            }                     Rotate the stack rightwards.
             }                    And again...
              1+                  Add one. This makes the 0 in this code a 1, then 2...
                r                 Reverse the stack.
                 d3*              Get the character '
                    Z             Output all items in the stack.
                     ;            End execution.
                      helloworld  String to manipulate.

Second output:

'1DV\{25^-V\}}1+{rd3*Z;helloworlD

Third output:

'2DV\{25^-V\}}1+{rd3*Z;helloworLD

Fourth output:

'3DV\{25^-V\}}1+{rd3*Z;hellowoRLD

Fifth output:

'4DV\{25^-V\}}1+{rd3*Z;hellowORLD

Sixth output:

'5DV\{25^-V\}}1+{rd3*Z;helloWORLD

Seventh output:

'6DV\{25^-V\}}1+{rd3*Z;hellOWORLD

Eighth output:

'7DV\{25^-V\}}1+{rd3*Z;helLOWORLD

Ninth output:

'8DV\{25^-V\}}1+{rd3*Z;heLLOWORLD

Tenth output:

'9DV\{25^-V\}}1+{rd3*Z;hELLOWORLD

Eleventh output:

':DV\{25^-V\}}1+{rd3*Z;HELLOWORLD

This is the last output, as it will cause an error.