The org argument is used to choose the position of the text in the image, and the bottom left corner of the text is put at the point org. If you want the text more to the right, you increase the x value, and if you want it lower, you increase the y value. So each line will be lower because you are increasing the y value with the offset*idx.
As you have it, the second argument str(lbls) will print out the entire array, that should be changed to the variable for the single element, which you have as list. (However, it's best not to use list as a variable because it will replace the built-in function list(). I'll use lbl instead.)
Here's an example where the words in the list are printed:
import cv2
import numpy as np
import matplotlib.pyplot as plt
frame = np.ones([400,400,3])*255
lbls = ['standUp', 'front', 'lookU', 'lookF', 'lookDF', 'HandOnHipR']
offset = 35
x,y = 50,50
for idx,lbl in enumerate(lbls):
cv2.putText(frame, str(lbl), (x,y+offset*idx), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,0), 2)
plt.imshow(frame)
plt.show()

If you want to have the brackets and punctuation like you show above, you could possibly print them manually. The first and last elements would need to be printed separately:
cv2.putText(frame, '[\''+str(lbls[0])+'\',', (x,y), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,0), 2)
for idx,lbl in enumerate(lbls[1:-1]):
cv2.putText(frame, '\''+str(lbl)+'\',', (x,y+offset*(idx+1)), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,0), 2)
cv2.putText(frame, '\''+str(lbls[0])+'\']', (x,y+offset*(idx+2)), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,0), 2)

Otherwise, you could change the elements to actually include the punctuation in them.