EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_overlapping
sage: w, u = map(Words("abcdef"), ["ab", "cd"])
sage: S = ShuffleProduct_overlapping(w,u)
sage: S == loads(dumps(S))
True
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_overlapping
sage: w, u = map(Words(range(10)), [[0,1],[2,3]])
sage: S = ShuffleProduct_overlapping(w,u)
sage: S.list()
[word: 0123, word: 0213, word: 0231, word: 2013, word: 2031, word: 2301, word: 213, word: 033, word: 231, word: 024, word: 231, word: 204, word: 24]
sage: w, u = map(Words(range(1,10)), [[1,2],[3,4]])
sage: S = ShuffleProduct_overlapping(w,u)
sage: S.list()
[word: 1234, word: 1324, word: 1342, word: 3124, word: 3142, word: 3412, word: 424, word: 154, word: 442, word: 136, word: 352, word: 316, word: 46]
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_overlapping
sage: w, u = map(Words("abcdef"), ["ab", "cd"])
sage: ShuffleProduct_overlapping(w,u).__repr__()
'Overlapping shuffle product of word: ab and word: cd'
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_overlapping_r
sage: w, u = map(Words("abcdef"), ["ab", "cd"])
sage: S = ShuffleProduct_overlapping_r(w,u,1)
sage: S == loads(dumps(S))
True
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_overlapping_r
sage: w, u = Word([1,2]), Word([3,4])
sage: ShuffleProduct_overlapping_r(w,u,1).list()
[word: 424, word: 154, word: 442, word: 136, word: 352, word: 316]
sage: w, u = map(Words(range(1,7)), [[1,2], [3,4]])
sage: W = Words(range(1,7))
sage: w, u = W([1,2]), W([3,4])
sage: ShuffleProduct_overlapping_r(w, u, 1).list() #indirect doctest
[word: 424, word: 154, word: 442, word: 136, word: 352, word: 316]
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_overlapping_r
sage: w, u = map(Words("abcdef"), ["ab", "cd"])
sage: ShuffleProduct_overlapping_r(w,u,1).__repr__()
'Overlapping shuffle product of word: ab and word: cd with 1 overlaps'
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_shifted
sage: w, u = Word([1,2]), Word([3,4])
sage: S = ShuffleProduct_shifted(w,u)
sage: S == loads(dumps(S))
True
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_shifted
sage: w, u = Word([0,1]), Word([2,3])
sage: ShuffleProduct_shifted(w,u).__repr__()
'Shuffle product of word: 01 and word: 45'
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_w1w2
sage: W = Words("abcd")
sage: w = W("ab")
sage: u = W("cd")
sage: S = ShuffleProduct_w1w2(w,u)
sage: w*u in S
True
sage: all(w.is_subword_of(x) for x in S)
True
sage: w in S
False
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_w1w2
sage: W = Words([1,2,3,4])
sage: s = ShuffleProduct_w1w2(W([1,2]),W([3,4]))
sage: s == loads(dumps(s))
True
Returns an iterator for the words in the shuffle product of w1 and w2.
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_w1w2
sage: w, u = map(Words("abcd"), ["ab", "cd"])
sage: S = ShuffleProduct_w1w2(w,u)
sage: S.list() #indirect test
[word: abcd, word: acbd, word: acdb, word: cabd, word: cadb, word: cdab]
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_w1w2
sage: W = Words("abcd")
sage: repr(ShuffleProduct_w1w2(W("ab"),W("cd")))
'Shuffle product of word: ab and word: cd'
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_w1w2
sage: w, u = map(Words("abcd"), ["ab", "cd"])
sage: S = ShuffleProduct_w1w2(w,u)
sage: S._proc([0,1,0,1])
word: cadb
sage: S._proc([1,1,0,0])
word: abcd
Returns the number of words in the shuffle product of w1 and w2.
It is given by binomial(len(w1)+len(w2), len(w1)).
EXAMPLES:
sage: from sage.combinat.words.shuffle_product import ShuffleProduct_w1w2
sage: w, u = map(Words("abcd"), ["ab", "cd"])
sage: S = ShuffleProduct_w1w2(w,u)
sage: S.cardinality()
6