VBSで順列組み合わせ文字列生成

検索したらこんなのが出てきたが、同じ文字が重複するやつだったので、重複しないやつに改変してみた。
すごい時間かかった。やっぱり自分に職業プログラマーの素養はないわぁ‥‥。
サンプルをそのまま実行するとスクリプトの置き場所と同じところに結果.txtが作られ、内容は
abcd
abdc
acbd
...
みたいになります。
用途に応じてmyFRとmyWDをいじってね!

myFR = 4         '生成ケタ数
myWD = "a,b,c,d"
mySR = Split(myWD, ",")
myAR = ""
mySS = ""

Call ReP("")
myTXT = Replace(Wscript.ScriptFullName, _
    Wscript.ScriptName, "") & "結果.txt"
Call Wtxt(mySS)
Msgbox "END"
CreateObject("WScript.Shell").Run """" & myTXT & """"

'--------------------------------------------
'組み合わせ生成再帰処理
Function ReP(myAR)
    NoCandidate = True
    For i = 0 To myFR - 1
      If mySR(i) <> "" Then
        NoCandidate = False
        Temporary = mySR(i)
        mySR(i) = ""
        Call ReP(myAR & Temporary)
        mySR(i) = Temporary
      End If
    Next
    If NoCandidate Then
        mySS = mySS & vbCrLf & myAR
    End If
End Function

'--------------------------------------------
'結果出力
Function Wtxt(mySS)
    With CreateObject("Scripting.FileSystemObject") _
        .OpenTextFile(myTXT, 2, True)
        .Write mySS
        .Close
    End With
End Function
'--------------------------------------------