I figured that it'd be more beneficial for me currently if I get a better grasp of the characters I already know rather than learning new ones, so I've compiled a list of all the characters I've learned so far. I am wondering if there is a piece of software or website that I can use, where I can input a list of characters and it outputs a list of words that can be formed using only those characters?

As it stands, I can learn how to write characters very easily, and I can remember the pinyin for each character easily, but I can't for the life of me remember what tone should be associated with the character. I hope that by becoming familiar with the characters in as many different combinations as possible I'll hopefully remember their tones better.

If nothing else, I'd be able to expand my vocabulary without increasing the number of characters that I already have trouble remembering the tones for.

  • It'll easy (for a programmer) to write such a program with predefined word list to draw from. However, as far as I know, there no such thing out there that is ready to use.
    – fefe
    Mar 9, 2020 at 2:05
  • @fefe I'm proficient in Java and C++, if you know of any readily accessibly Mandarin word databases I could make it myself Mar 9, 2020 at 2:50
  • What about this: github.com/fxsjy/jieba/tree/master/extra_dict I don't know how good it is though ...
    – fefe
    Mar 9, 2020 at 3:57
  • mdbg.net/chinese/dictionary?page=cedict this should make a good list. It also contains word translations.
    – fefe
    Mar 9, 2020 at 7:46
  • @fefe thanks, I haven't looked at it yet but that aught to work. I wont get a chance to start anything until 2 in the morning tomorrow since I work nights, but if I get everything working and a platform to post it on I'll link it here for posterity's sake Mar 9, 2020 at 11:41

3 Answers 3


Ok, I could have gotten this done a lot sooner but I'm a lazy prick, here it is:

enter image description here

Wasn't what I was originally planning on doing when I got off work but here it is. I searched up "100 most basic Chinese characters" and put those through and it pumped out 1500 unique words. I might work on this further in the future but for now I don't event want to look at it. There's a button to switch between Simplified and Traditional but I haven't set it up yet.

enter image description here



Executable Jar:


  • Lol. 100 characters theoretically could make 10000 two-character words. Be happy there are only 1500. Chinese characters are this powerful! :) That being said, some of the words may not be very urgent for beginners. For instance, of the words in your picture, I've never heard of 头家, and 面面 is not even a word. Maybe it'll be a better idea to get a word frequency list and generate words from that.
    – Betty
    Mar 13, 2020 at 13:12
  • Also, be careful of the "semantic satiation" phenomenon (en.wikipedia.org/wiki/Semantic_satiation). If a person reads the same character for too many times in a short time, the character may suddenly become unrecognizable. It just happened to me reading the 头 words. (I'm a native speaker of Chinese.) Don't know about how this will affect learners, though.
    – Betty
    Mar 13, 2020 at 13:19
  • @Betty this is pulled directly from the CC-CEDICT database that Pleco and all of the other big dictionaries use as a backend Mar 13, 2020 at 13:54
  • @Betty, funny you brought that up, while j was programming this I kept typing the word "word" and it stopped looking like a real word to me Mar 13, 2020 at 13:55
  • sure, I mean a big dictionary may be quite comprehensive, and a learner probably does not need to master all the not-so-common words. However, I know people who aim to memorize whole dictionaries, so do what you like. :)
    – Betty
    Mar 13, 2020 at 14:02

the ministry of education, taiwan maintained the dictionary 國語辭典, which is free to download.


these are excel files, you may export them into utf8 txt files, join together, then “play” with it.

personally, i used shell commands to grep what i want, if you know java & c++; no difficulty lah.

if the “重編國語辭典 修訂本” is too advanced; then, try the “國語辭典簡編本”.

have fun :)


Here's an awk command that outputs the CC-EDICT (cedict_ts.u8) lines for words which have (simplified) characters belonging to ListOfChars.

awk '{
  ListOfChars = "在现实生产";
  count = 0;

  for (i=1; i <= length(ListOfChars); i++) {
    if($2 ~ substr(ListOfChars,i,1)) count++;

  if(count == length($2)) print
}' cedict_ts.u8

The output is:

在 在 [zai4] /(located) at/(to be) in/to exist/in the middle of doing sth/(indicating an action in progress)/
實 实 [shi2] /real/true/honest/really/solid/fruit/seed/definitely/
實在 实在 [shi2 zai4] /really/actually/indeed/true/real/honest/dependable/(philosophy) reality/
實現 实现 [shi2 xian4] /to achieve/to implement/to realize/to bring about/
現 现 [xian4] /to appear/present/now/existing/current/
現在 现在 [xian4 zai4] /now/at present/at the moment/modern/current/nowadays/
現實 现实 [xian4 shi2] /reality/actuality/real/actual/realistic/pragmatic/materialistic/self-interested/
生 生 [sheng1] /to be born/to give birth/life/to grow/raw/uncooked/student/
生產 生产 [sheng1 chan3] /to produce/to manufacture/to give birth to a child/
產 产 [chan3] /to give birth/to reproduce/to produce/product/resource/estate/property/
產生 产生 [chan3 sheng1] /to arise/to come into being/to come about/to give rise to/to bring into being/to bring about/to produce/to engender/to generate/to appear/appearance/emergence/generation/production/yield/
  • 1
    Yo I already made a whole program, give me my free time back or I'm gonna cry Mar 14, 2020 at 0:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.