Generate the shortest De Bruijn A De Bruijn sequence is interesting: It is the shortest, cyclic sequence that contains all possible sequences of a given alphabet of a given length.  For example, if we were considering the alphabet A,B,C and a length of 3, a possible output is:

AAABBBCCCABCACCBBAACBCBABAC


You will notice that every possible 3-character sequence using the letters A, B, and C are in there.

Your challenge is to generate a De Bruijn sequence in as few characters as possible.  Your function should take two parameters, an integer representing the length of the sequences, and a list containing the alphabet.  Your output should be the sequence in list form.

You may assume that every item in the alphabet is distinct.

An example generator can be found here

Standard loopholes apply
Pyth, 31 bytes
This is the direct conversion of the algorithm used in my CJam answer. Tips for golfing welcome!
Mu?G}H+GG+G&gt;Hefq&lt;HT&gt;G-lGTUH^GHk

This code defines a function g which takes two arguments, the string of list of characters and the number.
Example usage:
Mu?G}H+GG+G&gt;Hefq&lt;HT&gt;G-lGTUH^GHkg&quot;ABC&quot;3

Output:
AAABAACABBABCACBACCBBBCBCCC

Code expansion:
M                 # def g(G,H):
 u                #   return reduce(lambda G, H:
  ?G              #     (G if
    }H            #       (H in
      +GG         #          add(G,G)) else
    +G            #       add(G,
      &gt;H          #         slice_end(H,
        e         #           last_element(
         f        #             Pfilter(lambda T:
          q       #               equal(
           &lt;HT    #                 slice_start(H,T),
           &gt;G     #                 slice_end(G,
             -lGT #                   minus(Plen(G),T))),
          UH      #               urange(H)))))),
  ^GH             #     cartesian_product(G,H),
  k               #     &quot;&quot;)

Try it here