How to rotate a couple of verts together?

Let’s say that I have a typical mesh generation script:


import bpy

scene = bpy.context.scene

# Create the mesh
mesh = bpy.data.meshes.new('MyMesh')

# Create the object
object = bpy.data.objects.new('MyObject', mesh)

# Add vertices
verts = (
    (-1,-1, -1),  # 0 
    ( 1,-1, -1),  # 1
    ( 1, 1, -1),  # 2
    (-1, 1, -1),  # 3
)

# Faces
faces = ()

# Load data (Vertices and Faces)
mesh.from_pydata(verts, (), faces)

# Link new object with the scene
scene.objects.link(object)

The point of interest is the verts list, it contains data about 4 vertices that are placed just like a plane. I would like to keep this data as is and duplicate it with upwards step z rotation (spiral like).

How can I apply a rotation to this group of 4 vertices?
one vert and one vector field at a time?