I read the forum but I couldn't find the answer of my question about what I am looking for. Let me tell what I am looking for:

I have a wordlist. Let's say "names" and it goes like (john, tom, william..)
and I want to create an other new list by using this list, like;

--------------------
john1
john2
....
john9999
tom1
...
...
tom9999
...
--------------------

This is the most simple manuplation that I want to make to the first list but according to the possible needs which will appear in future, I would like to make some other manuplations and create new lists like;

---------------------
(Capitalization)
John1
...

----OR------

(Putting something inside words)
jAohn
tAom
wAilliam
...

----OR------

(Combining words within other words in an other wordlist)
Let's say I have a second wordlist like (TABLE, DESK, ...)

and new (third) wordlist should be like;

johnTABLE
johnDESK
tomTABLE
tomDESK
williamTABLE
williamDESK
------------------

So I hope I can make it understandable what I am looking for. I don't know if classic programs can do it like John the Ripper, etc.. But I didn't see any example in anywhere that show they can do it. Examples that I saw were always about creating some wordlists for brute forse attack.

SO, my main question is : Is there a way (software) which allows me to generate wordlists by making this kind of intelligent choices?