title: Generating every character combination up to a certain word length
body: <p>I am doing a security presentation for my Computer and Information Security course in a few weeks time, and in this presentation I will be demonstrating the pros and cons of different attacks (dictionary, rainbow and bruteforce). I am do the dictionary and rainbow attacks fine but I need to generate the bruteforce attack on the fly. I need to find an algorithm that will let me cycle though every combination of letter, symbol and number up to a certain character length.</p>
  
  <p>So as an example, for a character length of 12, the first and last few generations will be:</p>
  
  <pre><code>a
  ab
  abc
  abcd
  ...
  ...
  zzzzzzzzzzzx
  zzzzzzzzzzzy
  zzzzzzzzzzzz
  </code></pre>
  
  <p>But it will also use numbers and symbols, so it's quite hard for me to explain... but I think you get the idea. Using only symbols from the ASCII table is fine.</p>
  
  <p>I can kind of picture using an ASCII function to do this with a counter, but I just can't work it out in my head. If anyone could provide some source code (I'll probably be using C#) or even some pseudo code that I can program a function from that'd be great.</p>
  
  <p>Thank you in advance. :)</p>