[EMAIL PROTECTED] wrote: > Hi, > I want to generate all non-empty substrings of a string of length >=2. > Also, > each substring is to be paired with 'string - substring' part and vice > versa. > Thus, ['abc'] gives me [['a', 'bc'], ['bc', 'a'], ['ab', 'c'], ['c', > 'ab'], ['b', 'ac'], ['ac', 'b']] etc. > Similarly, 'abcd' should give me [['a', 'bcd'], ['bcd', 'a'], ['abc', > 'd'], ['d', 'abc'], ['b', 'acd'], ['acd', 'b'],['c', 'abd'], ['abd', 'c'], > ['ab', 'cd'], ['cd', 'ab'], ['bc', 'ad'], ['ad', 'bc'], ['ac', > 'bd'],['bd','ac']] >
In your last example you have ['ac','bd'], but neither 'ac' nor 'bd' is a _substring_ of 'abcd'. If you want to compute all possible (non-empty) sub-groups of a group (a group of characters, in your case), that's really quite a common algorthmic problem and you should be able to Google for a solution. Once you have all possible subgroups, just make your (weird) pairs, remove doubles (either by using a set or by sorting and removing identical neighboring objects), and you're done. If you're looking for a more efficient solution, specialized for your specific problem, you'll have to explain more precisely what you're trying to do, as well as why existing solutions aren't good enough. - Tal -- http://mail.python.org/mailman/listinfo/python-list