Python, Generating random string of brackets
Question: I am looking to generate random lengths and patterns of square brackets for
example, [] ][ [] ][ [] [[ ]] []

I have so far managed to get my program to generate brackets randomly, but
randomly in terms of how many times it generates them, so currently my program
is giving me results such as,

[] [] [] [] [] []

[] [] []

[] [] [] [] []

So there is no randomness within the brackets, only randomness in the number
of brackets displayed.

I want to know how I can make the order of the brackets random ASWELL as the
amount of brackets on show.

Here is my code so far,

    
    
    import random
    import string
    
    def randomGen(N):
        return random.randint(1,N)
    
    char1 = '['
    char2 = ']'
    finalist = []
    newList = []
    newList2 = []
    
    newValue = randomGen(99)
    
    for i in range(newValue):
        newList = char1
        newList2 = char2
        finalist.append(newList + newList2)
    
    for everChar in finalist:
        print everChar,
    

Thanks.


Answer: You could use `random.sample` to select the index for where to place, say,
left brackets. Then place right-brackets everywhere else:

    
    
    In [119]: import random
    
    In [122]: N = 10
    
    In [125]: idx = set(random.sample(range(N), N//2))
    
    In [126]: idx
    Out[126]: {0, 1, 4, 5, 7}
    
    In [127]: ''.join(['[' if i in idx else ']' for i in range(N)])
    Out[127]: '[[]][[][]]'
    

Given your examples, I assumed you want an equal number of left and right
brackets. If not, use jonrsharpe's solution.

