Yes repeated entries are allowed. My example was rather misleading in that regard...
Finite length words in a possible infinite set/alphabet is what I was looking for. So that word class you just mentioned looks perfect. Thank you very much. On Friday, April 22, 2016 at 10:08:05 PM UTC+10, Mike Zabrocki wrote: > > Oh, so you are allowing repeated entries? > > sage: Words([1,2]) > Words over {1, 2} > sage: Words([1,2],length=2).list() > [word: 11, word: 12, word: 21, word: 22] > > > > On Friday, 22 April 2016 07:30:05 UTC-4, Simon Wood wrote: >> >> Hi Mike and Travis, >> >> Thank you very much for your replies. >> >> Mike, your code snippet is unfortunately not what I am looking for. Sorry >> for being unclear. I'd like to construct the set of tuples of all lengths, >> not just tuples of length up to a certain bound. >> >> Travis, the FreeMonoid looks very promising. Word of arbitrary length in >> the set S should work just as well as tuples. I'll experiment with that a >> little and report back. >> >> Cheers, >> Simon >> >> On Friday, April 22, 2016 at 12:46:53 PM UTC+10, Travis Scrimshaw wrote: >>> >>> Hey Simon, >>> You might want to use FreeMonoid(index_set=S) as your basis indexing >>> set. Although you will need 7.2.beta5 to do the iteration: >>> >>> sage: S = (1,2) >>> sage: F = FreeMonoid(index_set=S) >>> sage: it = iter(F) >>> sage: [next(it) for _ in range(10)] >>> [1, F[1], F[2], F[1]*F[2], F[2]^2, F[1]^2, F[2]*F[1], F[1]^2*F[2], F[2]^ >>> 2*F[1], F[1]^3] >>> sage: [next(it).to_word_list() for _ in range(10)] >>> [[], [1], [2], [1, 2], [2, 2], [1, 1], [2, 1], [1, 1, 2], [2, 2, 1], [1, >>> 1, 1]] >>> sage: F([[1,4],[2,1],[1,1],[2,3]]) >>> F[1]^4*F[2]*F[1]*F[2]^3 >>> >>> This works for any set S, but the iterator will only work for finite >>> sets S. However, perhaps there could be some additional functionality for >>> IndexedFreeMonoid that could be added to make it work with your use case. >>> >>> Best, >>> Travis >>> >>> -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/d/optout.