can someone help refactor this method, perhaps by using helper methods and such.
def assembleRecur(board, numBlocks):
if board != "":
newboard = validify([*board])
if not newboard:
return ""
presBlock = newboard.count("#")
if presBlock > numBlocks:
return ""
while newboard != board:
board = newboard
newboard = validify([*newboard])
if not newboard:
return ""
presBlock = newboard.count("#")
if presBlock > numBlocks:
return ""
if checkConnect(board):
return ""
if presBlock == numBlocks: return board
for ind in findSpace(board):
if ind > area - 1 - ind:
ab = board[:area - 1 - ind] + "#" + board[area - ind:ind] + "#" + board[ind + 1:]
elif ind < area - 1 - ind:
ab = board[:ind] + "#" + board[ind + 1:area - 1 - ind] + "#" + board[area - ind:]
else:
ab = board[:ind] + "#" + board[ind + 1:]
nB = assembleRecur(ab, numBlocks)
if nB:
return nB
return ""